亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 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 關注
  • 286 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號