硒蟒蛇等待不起作用

时间:2018-07-06 15:01:39

标签: python selenium firefox

我尝试过

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")

1 个答案:

答案 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)之外,别无所求。