4 回答

TA貢獻1862條經驗 獲得超6個贊
此錯誤是由于同步問題而發生的。Yu可以通過使用selenium中的等待來解決您的問題。請參考以下解決方案以避免此類錯誤:
WebDriverWait(driver, 30).until(
EC.element_to_be_clickable((By.XPATH, "//button[@class='_3kh8OsNx6QdAbMaoKTi2Yq _1uaripz9PIQ8yApSTs6BKk']"))).click()
注意:請將以下導入添加到您的解決方案中
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
免費注冊按鈕部分:
wait.until(EC.element_to_be_clickable((By.XPATH, "//button[@class='_3kh8OsNx6QdAbMaoKTi2Yq _1uaripz9PIQ8yApSTs6BKk']"))).click()
wait.until(EC.element_to_be_clickable((By.XPATH, "//span[contains(text(),'Sign up for free')]"))).click()

TA貢獻1809條經驗 獲得超8個贊
該錯誤意味著它在 10 秒內沒有找到可點擊的按鈕,并且超時,拋出 TimeoutException。需要設置更長的等待時間,或者相應處理TimeoutException

TA貢獻1851條經驗 獲得超4個贊
該錯誤通常是由于無法在定義的時間段內找到該對象而引發的。我寧愿你設置一個異常錯誤來捕獲它,并在失敗時繼續查找下一個對象或元素。
try:
#Insert your scraping action here
signinButton.click()
except NoSuchElementException:

TA貢獻1780條經驗 獲得超4個贊
該錯誤意味著 selenium 無法在指定的時間內找到該元素。
也不要在類名中使用空格。只需使用點.,否則無論您增加時間,硒都將無法找到它。
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("https://robinhood.com/crypto/BTC")
element = driver.find_element_by_class_name(
"_3kh8OsNx6QdAbMaoKTi2Yq._1uaripz9PIQ8yApSTs6BKk")
print(element)
- 4 回答
- 0 關注
- 184 瀏覽
添加回答
舉報