当前位置:   article > 正文

Selenium等待条件全解析:17种元素等待条件助你轻松应对网页测试_selenium的等待条件

selenium的等待条件

在Web自动化测试中,页面元素的加载速度往往会影响到测试的执行效率和稳定性。为了解决这个问题,Selenium提供了一系列的等待条件,让我们可以在编写测试用例时,根据实际需求选择合适的等待条件,提高测试的效率和稳定性。本文将详细介绍Selenium中的17种元素等待条件,并通过实例代码演示如何使用这些等待条件。

  1. title_is:判断title是否出现

这个等待条件会检查当前页面的title是否与指定的字符串完全相等。如果相等,则返回True,否则继续等待。

  1. title_contains:判断title是否包含某些字符

这个等待条件会检查当前页面的title是否包含指定的字符串。如果包含,则返回True,否则继续等待。

  1. presence_of_element_located:判断某个元素是否被加到了DOM树里

这个等待条件会检查指定的元素是否存在于DOM树中。如果存在,则返回True,否则继续等待。需要注意的是,这个条件并不保证元素是可见的。

  1. visibility_of_element_located:判断某个元素是否被添加到了DOM里并且可见,宽和高都大于0

这个等待条件会检查指定的元素是否存在于DOM树中,且元素是可见的(即元素的宽和高都大于0)。如果满足条件,则返回True,否则继续等待。

  1. visibility_of:判断元素是否可见,如果可见就返回这个元素

这个等待条件会检查指定的元素是否可见。如果可见,则返回该元素,否则继续等待。

  1. presence_of_all_elements_located:判断是否至少有1个元素存在于DOM树中

这个等待条件会检查是否有至少一个指定的元素存在于DOM树中。如果有,则返回True,否则继续等待。

  1. visibility_of_any_elements_located:判断是否至少有一个元素在页面中可见

这个等待条件会检查是否有至少一个指定的元素在页面中可见。如果有,则返回True,否则继续等待。

  1. text_to_be_present_in_element:判断指定的元素中是否包含了预期的字符串

这个等待条件会检查指定的元素中是否包含了预期的字符串。如果包含,则返回True,否则继续等待。

  1. text_to_be_present_in_element_value:判断指定元素的属性值中是否包含了预期的字符串

这个等待条件会检查指定元素的属性值中是否包含了预期的字符串。如果包含,则返回True,否则继续等待。

  1. frame_to_be_available_and_switch_to_it:判断该frame是否可以switch进去

这个等待条件会检查指定的frame是否可以切换进去。如果可以,则切换到该frame并返回True,否则继续等待。

  1. invisibility_of_element_located:判断某个元素在是否存在于DOM或不可见

这个等待条件会检查指定的元素是否不存在于DOM树中或者不可见。如果满足条件,则返回True,否则继续等待。

  1. element_to_be_clickable:判断某个元素是否可见并且是enable的,代表可点击

这个等待条件会检查指定的元素是否可见并且是enable的。如果满足条件,则返回True,否则继续等待。

  1. staleness_of:等待某个元素从DOM树中移除

这个等待条件会检查指定的元素是否从DOM树中移除。如果移除,则返回True,否则继续等待。

  1. element_to_be_selected:判断某个元素是否被选中了,一般用在下拉列表

这个等待条件会检查指定的元素是否被选中了。如果选中,则返回True,否则继续等待。

  1. element_selection_state_to_be:判断某个元素的选中状态是否符合预期

这个等待条件会检查指定的元素的选中状态是否符合预期。如果符合,则返回True,否则继续等待。

  1. element_located_selection_state_to_be:判断某个元素的选中状态是否符合预期

这个等待条件会检查指定的元素的选中状态是否符合预期。如果符合,则返回True,否则继续等待。

  1. presence:判断页面上是否存在

这个等待条件会检查页面上是否存在指定的元素。如果存在,则返回True,否则继续等待。

接下来,我们通过一个实例代码来演示如何使用这些等待条件。假设我们有一个简单的HTML页面,其中包含一个按钮和一个文本框。当点击按钮后,会弹出一个提示框显示“Hello, World!”。我们的任务是使用Selenium编写一个测试用例,验证点击按钮后是否能正确弹出提示框。

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

def test_button_click():
    driver = webdriver.Chrome()
    driver.get("http://XXXX/test.html")

    # 点击按钮
    driver.find_element(By.ID, "button").click()

    # 等待提示框出现
    wait = WebDriverWait(driver, 10)
    alert = wait.until(EC.visibility_of_element_located((By.ID, "alert")))

    # 验证提示框的内容
    assert alert.text == "Hello, World!"

    driver.quit()

if __name__ == "__main__":
    test_button_click()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

在这个例子中,我们使用了visibility_of_element_located等待条件来等待提示框出现。当提示框可见时,我们获取其内容并验证是否为“Hello, World!”。这样,我们就可以确保在点击按钮后,提示框能正确弹出并显示预期的内容。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/910011
推荐阅读
相关标签
  

闽ICP备14008679号