一尘不染

让selenium等待10秒

selenium

是的,我知道这个问题经常被问到,但是我还是不明白。我想让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似乎没有问题…


阅读 305

收藏
2020-06-26

共1个答案

一尘不染

您提到的所有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();
    }
2020-06-26