我尝试过
WebDriverWait(web.driver,1000000000000000000000000000000000000000000000000)
它什么也没做。
网络也在动态变化,向其中引入了新元素,并且新元素的page_source中不存在代码。
请帮助我整个上午都被困住
我正在将geckodriver用于Firefox python 3
测试代码
_browser_profile = webdriver.FirefoxProfile()
_browser_profile.set_preference("dom.webnotifications.enabled", False)
driver=webdriver.Firefox(firefox_profile= _browser_profile)
driver.get("https://www.google.com/")
wait= WebDriverWait(driver,10)
driver.get("https://www.youtube.com")
答案 0 :(得分:2)
这只是明确等待的声明。
如果您不将其与预期条件的EC绑定,则此操作WebDriverWait(web.driver,1000000000000000000000000000000000000000000000000)
无效。
您必须要做的事情
wait = WebDriverWait(driver, 10)
element = wait.until(EC.element_to_be_clickable((By.ID, 'someid')))
有关显式等待的更多信息,请访问Selenium python wait
更新:
您已共享的代码,只是让您的脚本知道它有明确的等待。
您根本没有使用显式等待。
driver.get("https://www.google.com/")
search_bar = wait.until(EC.element_to_be_clickable((By.NAME, 'q')))
search_bar.sendkeys("Hi Google")
请注意,您必须导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
我不知道@Andrei为什么为您提供了最糟糕的显式等待,除了time.sleep(10)
之外,别无所求。