我正在使用一个网页,其中包含许多javascript按钮,这些按钮的编写如下:
<a href="javascript:;" onclick="addtocart('888%20B0007VBRUE%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20',$(this),0)" class="btn btn-lblue pull-right">
Selenium可以执行javascript,但我不太确定如何格式化javascript查询以触发单独的购买按钮。我试过了:
driver.execute_script("document.getElementById("test").onclick = "addtocart('888%20B0007VBRUE%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20',$(this),0)").click()
但这给了我错误Message: document.getElementById(...) is null
。我怎样才能改变我试图让它发挥作用的东西?
答案 0 :(得分:2)
这是因为您尚未在test
标记中添加<a>
的ID。此外,通常不建议根据其onclick处理程序的值查找元素。
固定代码:
<a href="javascript:;" id="test" onclick="addtocart('888%20B0007VBRUE%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20',$(this),0)" class="btn btn-lblue pull-right">
此外,您需要在driver.execute脚本中切换"
'
之一,因为每个"
都会终止前面的字符串。
示例:
driver.execute_script('document.getElementById("test"),$(this),0)').click()