Selenium显示等待之 expected_conditions详解

在Selenium UI自动化测试中,显示等待中的expected_conditions是一组用于等待特定条件的方法集合。它提供了一种灵活的方式来等待页面元素的出现、消失、可点击等状态。以下是对expected_conditions的详细介绍:

一、基本用法

  • 引用expected_conditions

在使用Selenium进行自动化测试时,需要从
selenium.webdriver.support.expected_conditions模块中引用所需的等待条件方法。

例如:from selenium.webdriver.support import expected_conditions as EC
  • 结合WebDriverWait使用

expected_conditions通常与WebDriverWait一起使用,以实现显示等待。WebDriverWait会在给定的时间内不断检查是否满足特定条件,如果满足条件则立即返回,否则会抛出TimeoutException异常。

示例代码:

from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec

    def wait_click_element(self,locator):
        WebDriverWait(
            #浏览器对象
            driver=self.driver,
            #最大超时时间
            timeout=timeout,
            #轮询时间
            poll_frequency=poll_time,
            ignored_exceptions = None).until(
            ec.visibility_of_element_located(locator)
        ).click()

WebDriverWait参数说明:

 - driver - 浏览器驱动实例
 - timeout - 等待的超时时间,单位是秒
 - poll_frequency - 轮询时间,默认情况是0.5s
 - ignored_exceptions - 等待期间被忽略的异常类,是一个可迭代结构,默认情况只包含NoSuchElementException(找不到元素异常)

二、常见的等待条件方法

presence_of_element_located(locator):等待指定定位器的元素出现在页面上。
visibility_of_element_located(locator):等待指定定位器的元素在页面上可见。
element_to_be_clickable(locator):等待指定定位器的元素可点击。
presence_of_all_elements_located(locator):等待页面上所有符合指定定位器的元素出现。
visibility_of_all_elements_located(locator):等待页面上所有符合指定定位器的元素可见。
title_contains(title):等待页面标题包含指定的字符串。
title_is(title):等待页面标题完全等于指定的字符串。
text_to_be_present_in_element(locator, text):等待指定定位器的元素包含指定的文本。
text_to_be_present_in_element_value(locator, text):等待指定定位器的元素的值包含指定的文本。
alert_is_present():等待页面上出现警告框。
frame_to_be_available_and_switch_to_it(locator):等待指定的框架可用并切换到该框架。

三、优势和作用

  • 提高测试稳定性:通过等待特定条件满足,可以避免因页面加载不完全或元素尚未出现而导致的测试失败。这使得测试更加稳定可靠。
  • 减少等待时间:相比于使用固定的睡眠时间进行等待,显示等待可以根据实际情况动态地等待,从而减少不必要的等待时间,提高测试效率。
  • 增强测试的灵活性:可以根据不同的测试场景选择合适的等待条件方法,满足各种复杂的测试需求。

在使用WebDriverWait时,需要合理设置等待时间。可以根据实际情况结合使用隐式等待和显示等待。总之,expected_conditions在Selenium自动化测试中提供了强大的等待功能,通过合理使用可以提高测试的稳定性、效率和灵活性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嘴硬脾气暴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值