是的,我知道这个问题经常被问到,但我仍然没有得到它.无论如何,我想让Selenium等待.我试过这些方法
driver.set_page_load_timeout(30)
driver.implicitly_wait(90)
WebDriverWait(driver, 10)
driver.set_script_timeout(30)
Run Code Online (Sandbox Code Playgroud)
和其他东西,但它不起作用.我需要硒等待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"
Run Code Online (Sandbox Code Playgroud)
我不希望这样.
如果等待几秒钟对于硒来说是多少(不可实现),那么其他(python)库/程序能够完成这项任务呢?使用Javas Selenium它似乎不是一个问题......
Gau*_*hah 40
您提到的所有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-
所以,如果你想等待硒(或任何脚本)10秒,或任何时间.那么最好的办法是让那个线程进入睡眠状态.
在python中它会是
import time
time.sleep(10)
Run Code Online (Sandbox Code Playgroud)
在JAVA中它会是
这样做的简单方法是使用
try {
Thread.sleep(10*1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47011 次 |
| 最近记录: |