所以我試圖自動化我的日常事務以登錄我的 ADP 網站,但似乎我從 selenium 中選擇的任何功能都找不到我正在尋找的 ID,即“id="login-form_username”。
下面是 Selenim Python 代碼的一部分。
user_textbox=driver.find_element_by_id('login-form_username')
user_textbox.send_keys(user)
user_textbox.click()
user_confirm=driver.find_element_by_id("verifUseridBtn")
user_pass_textbox=driver.find_element_by_id("login-form_password")
user_signin=driver.find_element_by_id("signBtn")
user_signin.send_keys(Keys.RETURN)
還附上了網站截圖和我的 IDE 中的錯誤。我不確定是不是因為安全原因,我試圖訪問的網站不允許這種事情。
謝謝喬爾
uj5u.com熱心網友回復:
由于您沒有分享頁面鏈接而不是您看到的錯誤,我們只能猜測您的代碼有什么問題。
所以它可以是:
- 您在訪問該元素之前錯過了等待/延遲。
在這種情況下,這樣的事情應該可以解決您的問題:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome(executable_path='chromedriver.exe')
wait = WebDriverWait(driver, 20)
driver.get("https://your_site_url/")
user_textbox = wait.until(EC.visibility_of_element_located((By.ID, "login-form_username")))
user_textbox.send_keys(user)
user_textbox.click()
或者,您可以在定位元素之前簡單地添加延遲,如下所示:
time.sleep(5)
user_textbox=driver.find_element_by_id('login-form_username')
user_textbox.send_keys(user)
user_textbox.click()
time.sleep(5)
user_confirm=driver.find_element_by_id("verifUseridBtn")
user_pass_textbox=driver.find_element_by_id("login-form_password")
time.sleep(5)
user_signin=driver.find_element_by_id("signBtn")
user_signin.send_keys(Keys.RETURN)
但這不是最好的方法。
2)也許那里有一個iframe。
在這種情況下,您必須切換到該 iframe。
3) 也許您沒有將網路驅動程式設定為足夠大的大小 - 如果是這樣,請這樣做。
4)可能您必須將該輸入元素滾動到視圖中?
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/338299.html
