javascript - 无法使用selenium在onclick中执行javascript

标签 javascript python selenium

使用 selenium(带有 python 绑定(bind)),我正在处理一个几乎完全是 AJAX 的网页;包括超链接。我希望不使用 element.click() 方法,而是在标签的“onclick”属性中执行 JavaScript:

标签:

<a onclick="javascript:setEvent(event);requisition_openRequisitionDescription('requisitionListInterface','actOpenRequisitionDescription',_ftl_api.lstVal('requisitionListInterface', 'requisitionListInterface.listRequisition', 'requisitionListInterface.d327682e687', this),'requisitionList');return ftlUtil_followLink(this);" href="#" title="View this job description" id="requisitionListInterface.reqTitleLinkAction.row1">

代码:

from selenium import webdriver
firefox = webdriver.Firefox()
firefox.get("some_url")
elem = firefox.find_element_by_id("requisitionListInterface.reqTitleLinkAction.row1")
jcode = elem.get_attribute("onclick")
firefox.execute_script(jcode)

错误:

WebDriverException: Message: u'event is not defined' ; Stacktrace:

免责声明:

我不懂 JavaScript。据我所知,它期待“事件”变量,但我猜它与回调有关?

编辑:

我假设 javascript 正在修改 href 属性,但是 javascript 是否可以在不修改超链接的情况下重定向浏览器?

最佳答案

您只需使用此按钮即可单击它。

elem.click()

onclick 事件会自动触发。

关于javascript - 无法使用selenium在onclick中执行javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17850944/

相关文章:

javascript - 我如何在 React 中循环遍历 JSON 对象

javascript - Angular ,ng 类,内部有重复函数

javascript - 使用用户 ID 将数据添加到 Firestore

对象上方的python命名空间层次结构

java - Selenium,JAVA - @After 中的错误

javascript - 如何从 json 中添加注释?

python - .join 函数不会在循环中工作

python - 高效地创建面具 - Numpy/Python

java - Selenium 测试用例在每种情况下都通过,无论元素是否出现在页面上

javascript - Protractor - 上传文件错误 "Element &lt;input type="文件">在 Firefox 58 中无法通过键盘访问,但在 Firefox 57 中工作正常