![](/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.