4 回答

TA贡献1795条经验 获得超7个赞
由于同步问题而发生此错误。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贡献1829条经验 获得超7个赞
该错误意味着它在 10 秒内没有找到可点击的按钮,并且它超时,抛出 TimeoutException。您需要设置更长的等待时间,或相应地处理 TimeoutException

TA贡献1780条经验 获得超1个赞
该错误意味着 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)

TA贡献1786条经验 获得超11个赞
由于无法在定义的时间段内找到对象,通常会出现错误。我宁愿你设置一个异常错误来捕获它并在它失败时继续查找下一个对象或元素。
try:
#Insert your scraping action here
signinButton.click()
except NoSuchElementException:
添加回答
举报