我一直在嘗試使用以下教程為我創建一個登錄 facebook.com 的機器人:https : //medium.com/@kikigulab/how-to-automate-opening-and-login-to-websites-with -python-6aeaf1f6ae98
但是,我無法讓我的機器人單擊“登錄”按鈕,因為 Facebook 的“登錄”按鈕的 ID 不斷變化(我通過右鍵單擊“登錄”按鈕,然后檢查 Chrome 中的元素發現了這一點)。我想他們這樣做是為了防止垃圾郵件發送者,但我如何登錄 facebook.com 或找到解決我的問題的方法?
例如,對于 facebook.com 的一次重繪 ,ID 將是“u_0_d_KK”,但一旦加載了網站的新實體,就會更改為其他字串。
使用上面鏈接中的代碼,我的代碼看起來像這樣但失敗了:
def login(url, usernameId, username, passwordId, password, submit_buttonId):
driver.get(url)
driver.find_element_by_id(usernameId).send_keys(username)
driver.find_element_by_id(passwordId).send_keys(password)
driver.find_element_by_id(submit_buttonId).click()
login("https://www.facebook.com/", "email", myFbEmail, "pass", myFbPassword, "u_0_d_KK")
因為“u_0_d_KK”實際上是加載網站時的其他字串。
提前致謝!
uj5u.com熱心網友回復:
看到這是外部 HTML
<button value="1" name="login" data-testid="royal_login_button" type="submit" id="u_0_d_n6">Login </button>
我看到該名稱在 HTMLDOM 中是唯一的,因此您應該使用名稱。
driver.find_element_by_name('login').click()
應該為你作業。你應該寫上一行來代替
driver.find_element_by_id(submit_buttonId).click()
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/322563.html
上一篇:本機模塊FBAccessToken試圖覆寫FBAccesTokenModule。檢查MainApplication.Java中的getPackages()方法
