为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Selenium 添加 JavaScript 事件侦听器会自动触发它

使用 Selenium 添加 JavaScript 事件侦听器会自动触发它

慕的地6264312 2023-05-23 14:50:45
由于(根据我的研究)没有办法用 selenium 捕捉用户输入,我正在尝试使用 JavaScript 事件监听器。但是当我通过执行 JavaScript 代码添加事件监听器时,该函数会自动触发,而我(作为用户)无需做任何事情。此外,无法再次触发该功能。有谁知道问题可能是什么以及我该如何解决?仅供参考:我的代码在 Python 3.8 中提前谢谢你,拉斐尔# this is a self defined function that creates a new selenium WebDriverbrowser = 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)一旦执行脚本,控制台就会显示“成功”,此后事件将不再触发。我已经尝试过不同的事件(点击、鼠标悬停……)、不同的功能和不同的元素的不同网站。
查看完整描述

2 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

你没有传递一个函数——你实际上只是直接调用

console.log("Success")

这 ^ 调用函数。您最终传递的实际参数是 的结果console.log,而不是函数本身(如果我记得的话它只是一个undefined)。如果你想真正传递一个函数,你应该做这样的事情。

() => console.log("Success")

对于 ES6 之前支持的浏览器,您可以使用:

function(){console.log("Success")}


查看完整回答
反对 回复 2023-05-23
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

该代码完全是一个无限循环,因为它只触发一次,然后在不触发之后。建议将您的代码编辑为

addEventListener("mouseover",{console.log("Success")})


查看完整回答
反对 回复 2023-05-23
  • 2 回答
  • 0 关注
  • 248 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信