【问题标题】:Make Selenium wait 10 seconds让 Selenium 等待 10 秒
【发布时间】:2018-01-02 23:59:10
【问题描述】:

是的,我知道这个问题经常被问到,但我还是不明白。无论如何,我想让 Selenium 等待。这些方法我都试过了

driver.set_page_load_timeout(30)
driver.implicitly_wait(90)
WebDriverWait(driver, 10)
driver.set_script_timeout(30)

和其他东西,但它不起作用。我需要硒等待 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) 库/程序能够完成这项任务吗?使用 Javas Selenium 似乎不是问题......

【问题讨论】:

  • 为什么页面加载后不能使用pythontime.sleep(10)。下一个动作要开始的时候放这个休眠方法
  • @NiranjRajasekaran 是的,有 Python 方式,但我想知道 selenium 是否能以某种方式做到这一点。想通过web驱动来实现。但好点:)

标签: python selenium


【解决方案1】:

您提到的所有 API 基本上都是超时,所以它会等到某个事件发生或达到最大时间。

set_page_load_timeout - 设置在引发错误之前等待页面加载完成的时间量。如果超时为负数,则页面加载可能是无限期的。

implicitly_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-

所以,如果您想等待 selenium(或任何脚本)10 秒,或者任何时间。那么最好的办法就是让那个线程进入睡眠状态。

python 中是

import time 
time.sleep(10)

在 JAVA 中是

做到这一点的简单方法是使用

    try {
        Thread.sleep(10*1000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

【讨论】:

    猜你喜欢
    • 2012-10-03
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多