是的,我知道这个问题经常被问到,但是我还是不明白。我想让Selenium等待,无论如何。我尝试了这些方法
driver.set_page_load_timeout(30) driver.implicitly_wait(90) WebDriverWait(driver, 10) driver.set_script_timeout(30)
和其他东西,但它不起作用。我需要selenium才能等待10秒。 NO 直到一些元素被加载或什么,只是等待10秒。我知道有这个
try: element_present = EC.presence_of_element_located((By.ID, 'whatever')) WebDriverWait(driver, timeout).until(element_present) except TimeoutException: print "Timed out waiting for page to load"
我不要那个 。
如果要花几秒钟(无法实现)等待selenium,那么其他(python)库/程序将能够完成此任务?使用Java Selenium似乎没有问题…
您提到的所有API基本上都是超时,因此它将等待直到某个事件发生或达到最大时间。
set_page_load_timeout- 设置在引发错误之前等待页面加载完成的时间。如果超时为负,则页面加载可能不确定。
hiddenly_wait- 指定当元素不立即出现时,驱动程序在搜索元素时应等待的时间。
set_script_timeout- 设置在引发错误之前等待异步脚本完成执行的时间。如果超时为负,则将允许脚本无限期运行。
有关更多信息,请访问下一页。(有关Java绑定的文档,但所有绑定的功能应相同) https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebDriver.Timeouts.html#implicitlyWait- long -java.util.concurrent.TimeUnit-
因此,如果您想等待硒(或任何脚本)10秒钟或任何时间。那么最好的办法就是让该线程进入睡眠状态。
在 python 中
import time time.sleep(10)
在JAVA中
最简单的方法是使用
try { Thread.sleep(10*1000); } catch (InterruptedException e) { e.printStackTrace(); }