### 问题
捕捉页面上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