码迷,mamicode.com
首页 > 其他好文 > 详细

Waits的使用

时间:2020-09-17 21:30:40      阅读:36      评论:0      收藏:0      [点我收藏+]

标签:帮助   mice   until   不同   imp   expec   locate   some   except   

如今,大多数Web应用程序都在使用AJAX技术。 当浏览器加载页面时,该页面中的元素可能会以不同的时间间隔加载。 这使定位元素变得困难:如果DOM中尚不存在元素,则定位函数将引发ElementNotVisibleException异常。 使用等待,我们可以解决此问题。 等待在执行的动作之间提供了一定的松弛时间-主要是定位元素或对该元素进行的任何其他操作。

Selenium Webdriver提供两种类型的等待-隐式和显式。 显式等待使WebDriver等待特定条件发生,然后再继续执行。 隐式等待使WebDriver在尝试查找元素时轮询DOM一定时间。

Explicit Waits

显式等待是您定义的代码,用于在继续执行代码之前先等待特定条件发生。 极端的情况是time.sleep(),它将条件设置为要等待的确切时间段。 提供了一些方便的方法,可以帮助您编写仅等待所需时间的代码。 WebDriverWait与ExpectedCondition结合是实现此目的的一种方法。

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Firefox()
driver.get("http://somedomain/url_that_delays_loading")
try:
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "myDynamicElement"))
    )
finally:
    driver.quit()

在上面的代码中,Selenium将最多等待10秒,以便找到与给定条件匹配的元素。 如果在那时没有找到任何元素,则抛出TimeoutException。 默认情况下,WebDriverWait每500毫秒调用ExpectedCondition,直到返回成功。 如果成功,ExpectedCondition将返回true(布尔值),如果找不到元素,则返回null。

Waits的使用

标签:帮助   mice   until   不同   imp   expec   locate   some   except   

原文地址:https://blog.51cto.com/14930330/2531332

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!