如何通过它瞄准javascript元素's的onclick属性

How to target javascript element by it's onclick attribute via Selenium?

本文关键字:属性 onclick 元素 何通过 javascript      更新时间:2023-09-26

我正在使用一个网页,该网页上有许多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()

但是这给了我错误CCD_ 1。我如何才能改变我试图让它发挥作用的方式?

这是因为您尚未将test的id添加到<a>标记中。此外,通常不建议基于元素的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()