我正在使用下面的代碼來測驗登錄到一個網站。代碼打開一個網頁并等待一個元素加載,然后使用提供的憑據登錄。我在代碼中放了一些訊息,以便我識別代碼是否正在運行。但是,它不起作用。
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
options = Options()
options.add_argument("--headless")
options.add_argument("--no-sandbox")
s = Service("/usr/local/bin/chromedriver")
url = "https://atf.domain.com/"
driver = webdriver.Chrome(options=options, service=s)
driver.get(url)
print(driver.title)
try:
# wait 10 seconds before looking for element
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "username"))
print("Page loaded!")
)
except TimeoutException:
print("Page not loaded!")
driver.find_element(By.ID, "username").send_keys("[email protected]")
driver.find_element(By.ID, "password").send_keys("password")
driver.find_element(By.ID, "signinButton").click()
try:
# wait 10 seconds before looking for element
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "compose-delivery-link"))
print("Compose delivery page loaded!")
)
except TimeoutException:
print("Compose delivery page not loaded!")
driver.find_element(By.ID, "compose-delivery-link").click()
driver.close()
我得到低于錯誤,
File "sft_login_test.py", line 24
print('Page loaded!')
^
SyntaxError: invalid syntax
我不知道如何解決這個問題。任何幫助是極大的贊賞。
uj5u.com熱心網友回復:
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "username"))
)
print("Page loaded!")
我猜這個print電話應該在.until論點之外。
uj5u.com熱心網友回復:
你不小心在第 23 行的
Bothprint()的括號內寫了一個呼叫.until()
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "username"))
print("Page loaded!")
)
在第 37 行
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "compose-delivery-link"))
print("Compose delivery page loaded!")
)
此外,您將要匯入TimeoutExceptionfrom selenium.common.exceptions,因為這可能是您將遇到的下一個錯誤。
并提供一些側面資訊,WebDriverWait實際上并沒有等待 10 秒再尋找元素。它而是在設定的時間間隔內檢查條件(此處分別存在 ID 為“名稱”或“密碼”的元素),直到找到該元素(在這種情況下回傳該元素)或時間限制(此處為 10 seconds)達到,在這種情況下它拋出一個TimeoutException.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/480508.html
上一篇:在物件中按屬性而不是值洗掉行專案
