首页 > 其他 > 详细

Waits的使用

时间:2020-09-11 10:19:08      阅读:94      评论:0      收藏:0      [点我收藏+]
如今,大多数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的使用

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!