selenium2 隐式 waits
当我们要找一个或者一些不能立即可用的元素的时候,隐式waits
会告诉WebDriver
轮询DOM
指定的次数,默认设置是0次。一旦设定,WebDriver
对象实例的整个生命周期的隐式调用也就设定好了。
from selenium import webdriver
driver = webdriver.Firefox()
driver.implicitly_wait(10) # seconds
driver.get("http://somedomain/url_that_delays_loading")
myDynamicElement = driver.find_element_by_id('myDynamicElement')
关于显示和隐式的选择:始终使用显式等待。忘记隐式等待的存在。
显式waits的特点: | 隐式waits的特点: |
具有明确的行为表现 | 不具有明确的行为表现,同一个问题在不同的操作系统、不同的浏览器、不同的selenium版本会有各种不同的表现 |
在本地的selenium运行(你选择的编程语言) | 在远程的selenium上运行(控制浏览器的那部分) |
可以在任何你能想到的条件下工作 | 只能在寻找元素的函数上工作 |
返回成功或者超时 | 返回找到元素或者(在超时以后)没有找到 |
可以定义元素的缺失为条件 | 如果检查元素缺失那么总是会等待到超时 |
可以定制重试间隔,可以忽略某些异常 | 除了时间啥都不能指定 |