【发布时间】:2016-03-16 05:44:58
【问题描述】:
目标:
从 selenium webdriver 获取附加到节点的所有事件
我正在使用 selenium-python,我想执行一个 javascript 脚本(通过driver.execute_script('my js script')。
此脚本使用 getEventListeners,它仅在 Chrome 上可用。
我用成功了
driver = webdriver.Chrome('path/to/chromedriver')
启动 chrome 浏览器。使用getEventListeners(myNode) 执行我的脚本,我得到类似:
文件“/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py”,第 403 行,在 execute_script {'script': 脚本,'args':converted_args})['value'] 文件“/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py”,第 175 行,在执行中 self.error_handler.check_response(响应) 文件“/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py”,第 166 行,在 check_response 引发异常类(消息、屏幕、堆栈跟踪) selenium.common.exceptions.WebDriverException:消息:未知错误:未定义 getEventListeners
getEventListeners 可通过命令行 API 获得,但我无法通过 selenium 使其工作。有解决方案吗?有没有其他方法可以将所有事件绑定到一个元素? (尤其是点击事件)
干杯
【问题讨论】:
-
我遇到了同样的问题,并认为这是一个错误。我在这里报告了这个问题:bugs.chromium.org/p/chromedriver/issues/detail?id=1320
-
根据此页面developers.google.com/web/tools/chrome-devtools/console/… as getEventListeners 是命令行 API 的一部分,“此 API 仅在控制台本身内可用。您无法从页面上的脚本访问命令行 API”。
标签: javascript python google-chrome selenium