收藏在我的收藏看不到,只能copy了,转载至http://www.cnblogs.com/yicaifeitian/p/4749149.html

哈哈,我始终相信贴出来总会有人看。WebDriverWait 类位于selenium.webdriver.support.ui下面的例子很简单,

Example:

from selenium.webdriver.support.ui import WebDriverWait \n

element = WebDriverWait(driver, 10).until(lambda x: x.find_element_by_id("someId")) \n

is_disappeared = WebDriverWait(driver, 30, 1, (ElementNotVisibleException)).\ \n

until_not(lambda x: x.find_element_by_id("someId").is_displayed())

 

WebDriverWait 里面主要有两个方法,一个是until和until_not那么我们可以这样用:

WebDriverWait(driver, 10).until(lambda x: x.find_element_by_id("某个按钮")).click()

  意思就是在10秒内等待某个按钮被定位到,咱们再去点击。就是每隔0.5秒内调用一下until里面的表达式或者方法函数,要么10秒内表达式执行成功,要么10秒后抛出超时异常。

哈哈,我相信这个py文件大家一看就能懂。这无非就是一些预期条件。

结合上面的WebDriverWait,我们可以这么用:

from selenium.webdriver.support.wait import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

'''

10秒钟等待浏览器弹出的对话框,如果出现,就点击确定按钮

'''

WebDriverWait(chromedriver,10).until(EC.alert_is_present()).accept()

 我们的自动化脚本跑得快慢或者出现异常,很大程度上取决于我们设定的等待时间,如果你还是习惯于time.sleep(5)这种方式的话,这将会浪费很多时间。

好文链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。