使用 selenium(带有 python 绑定),我正在处理一个几乎完全是 AJAX 的网页;包括超链接。我希望在标签的“onclick”属性中执行 javascript,而不是使用 element.click() 方法:
标签:
<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 是否可以在不修改超链接的情况下重定向浏览器?