![](/img/trans.png)
[英]addEventListener in Javascript triggers the click event automatically
[英]Adding JavaScript event listener with Selenium triggers it automatically
由于(根据我的研究)无法使用 selenium 捕获用户输入,因此我正在尝试使用 JavaScript 事件侦听器。
但是,当我通过执行 JavaScript 代码添加事件侦听器时,function 会自动触发,而我(作为用户)没有做任何事情。 此外,无法再次触发 function。
有谁知道问题可能是什么以及我该如何解决? 仅供参考:我的代码在 Python 3.8
提前谢谢你,拉斐尔
# this is a self defined function that creates a new selenium WebDriver
browser = gf.create_browser(headless=False)
browser.get("https://www.google.com")
browser.execute_script('document.getElementById("hplogo").addEventListener("mouseover",console.log("Success"))')
time.sleep(90)
脚本一执行,控制台就会显示“成功”,之后该事件将不再触发。 我尝试过不同的事件(点击、鼠标悬停、...)、不同的功能和不同的网站具有不同的元素。
你没有通过 function - 你实际上只是直接调用它
console.log("Success")
这个 ^ 调用 function。 您最终传递的实际参数是console.log
的结果,而不是 function 本身(如果我记得只是undefined
)。 如果你想实际传递一个 function,你应该做这样的事情。
() => console.log("Success")
对于 ES6 之前支持的浏览器,您可以使用:
function(){console.log("Success")}
该代码完全是一个无限循环,因为它只触发一次,然后在它不触发之后。 建议将您的代码编辑为
addEventListener("mouseover",{console.log("Success")})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.