如何用selenium webdriver 捕获js error

### 问题

捕捉页面上js error

### 解决办法

从Selenium webdriver log 中解析

# -*- coding:utf8 -*-

import unittest
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

class CaptureJSError(unittest.TestCase):

    @classmethod
    def setUp(self):
        self.driver = webdriver.Remote(‘http://yourseleniumgrid:4444/wd/hub‘,
                                       desired_capabilities=DesiredCapabilities.FIREFOX)
    def test_search_in_python_org(self):
        driver = self.driver
        driver.get("http://foopagewitherr:80")
        logs = driver.get_log(‘browser‘)
        for log in logs:
            if log[‘level‘] == ‘SEVERE‘:
                print log
                # output is {u‘timestamp‘: 1474618002360, u‘message‘: u‘TypeError: $(...).ready_ is not a function‘, u‘level‘: u‘SEVERE‘}

    @classmethod
    def tearDown(self):
        self.driver.close()

if __name__ == "__main__":
    unittest.main()

Note:

这里的webdriver是由Selenium Grid提供的,本地webdriver 应该也是可以的

### 引用

https://www.3pillarglobal.com/insights/how-to-capture-javascript-errors-from-your-web-application

时间: 2024-11-05 11:52:55

如何用selenium webdriver 捕获js error的相关文章

java selenium webdriver处理JS操作窗口滚动条

未经作者允许,禁止转载!!! import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class JS20161212 { public static void main(String[] args) throws InterruptedException { // TODO

解决Ruby在IE11中报Unable to get browser (Selenium::WebDriver::Error::NoSuchWindowError)的错误

转载地址:http://www.tuicool.com/articles/BRnqeu2 I was updating the browser WebDrivers for    Seleno    when I hit an issue with the InternetExplorerDriver. I was running Selenium WebDriver 2.43.1 on Windows 8.1 and using Internet Explorer 11. The test w

Selenium::WebDriver::Error::WebDriverError:Unable to find standalone executable解决办法

情况描述: 在Watir-Webdriver环境下运行脚本报错(红色标记部分): C:\>irbirb(main):001:0> require 'watir-webdriver'=> trueirb(main):002:0> Watir::Browser.new :ieSelenium::WebDriver::Error::WebDriverError: Unable to find standalone executable. Please download the IEDri

Selenium Webdriver——JS处理rich text(富文本框)

126邮件正文邮件的rich text 先让selenium切换到iframe中 driver.switchTo().frame(driver.findElement(By.className("APP-editor-iframe"))); 然后执行JS WebElement editor = driver.findElement(By.tagName("body")); JavascriptExecutor jsExecutor = (JavascriptExec

一行js代码识别Selenium+Webdriver及其应对方案

有不少朋友在开发爬虫的过程中喜欢使用Selenium + Chromedriver,以为这样就能做到不被网站的反爬虫机制发现. 先不说淘宝这种基于用户行为的反爬虫策略,仅仅是一个普通的小网站,使用一行Javascript代码,就能轻轻松松识别你是否使用了Selenium + Chromedriver模拟浏览器. 我们来看一个例子. 使用下面这一段代码启动Chrome窗口: from selenium.webdriver import Chrome driver = Chrome() 现在,在这个

Selenium WebDriver 问题疑答(Q&A)

Q:启动IE浏览器时突然报下面错误,不能正常使用.     WebDriverException: Message: Unexpected error launching Internet Explorer. Browser zoom level was set to 94%. It should be set to 100% A:原因是IE页面的使用的的显示比例不是100%导致的,把页面显示调整成100%恢复正常. Q:找不到元素,脚本报NoSuchElementException:Unabl

Selenium webdriver 操作日历控件

一般的日期控件都是input标签下弹出来的,如果使用webdriver 去设置日期, 1. 定位到该input 2. 使用sendKeys 方法 比如: 但是,有的日期控件是readonly的 比如12306的这个 <input id="train_date" class="inp-txt" type="text" value="2015-03-15" name="back_train_date" a

selenium webdriver学习(六)------------如何得到弹出窗口

在selenium 1.X里面得到弹出窗口是一件比较麻烦的事,特别是新开窗口没有id.name的时候.当时还整理了处理了几种方法,详见:http://seleniumcn.cn/read.php?tid=791 .在selenium webdriver中得到新开窗口相对简单的多,它无关新开窗口的id.name等属性.以下面的html为例: [html] view plaincopyprint? <span style="white-space: normal; background-col

selenium常用的js总结

1. 对input执行输入 直接设置value属性, 此方法主要应对输入框自动补全以及readonly属性的element,sendkeys不稳定 比如: //inputbox is a WebElement JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript("arguments[0].value=\"北京\"", from_inpox); 对此可以封装一个typeQuick的