web自动化测试下拉选择框Select
发布日期:2021-05-13 21:48:50 浏览次数:12 分类:精选文章

本文共 1805 字,大约阅读时间需要 6 分钟。

Selenium 提供了丰富的API来操作下拉框,即Select类。了解和掌握这些API能帮助开发者高效地处理表单选择操作。

引入Select类

首先,需要在代码里引入Select类,可以从selenium.webdriver.support.select模块导入。这样才能操作下拉框元素:

from selenium.webdriver.support.select import Select

同时,通常情况下需要先从selenium.webdriver.common.by模块导入By:

from selenium.webdriver.common.by import By

这样,可以使用CSS或其他定位方式找到下拉框。

定位下拉框

在网页中,下拉框通常使用<select>标签包裹<option>选项。使用WebDriver找到下拉框可以通过CSS选择者。例如:

select_element = driver.find_element(By.CSS_SELECTOR, "body > select")
select_obj = Select(select_element)

需要注意定位是否唯一,确保只找到目标下拉框。

获取和处理下拉选项

  • 获取选项列表:
  • 获取所有选项,可以使用options属性:

    options_list = select_obj.options
    for option in options_list:
    print(option.text)
    1. 获取当前选中的选项:
    2. 使用first_selected_option方法,即可获取选中的选项:

      selected_option = select_obj.first_selected_option
      print(selected_option.text)

      下拉框的操作方法

      除了获取之外,还可以使用Select类的方法直接操作下拉框:

    3. 通过索引选择:
    4. select_obj.select_by_index(1)
      1. 通过值选择:
      2. select_obj.select_by_value("volvo")
        1. 通过可见文本选择:
        2. select_obj.select_by_visible_text("Audi")

          取消选择

          如果需要取消选择,可以使用类似的方法:

        3. 选择索引:
        4. select_obj.deselect_by_index(1)
          1. 选择值:
          2. select_obj.deselect_by_value("opel")
            1. 选择可见文本:
            2. select_obj.deselect_by_visible_text("Audi")

              还有deselect_all方法来取消所有选项选择。

              示例代码

              from selenium.webdriver import webdriver
              from selenium.webdriver.support.select import Select
              from selenium.webdriver.common.by import By
              driver = webdriver.Chrome()
              driver.get('https://www.w3school.com.cn/tiy/t.asp?f=html_select')
              # 进入下拉框对应的 iframe 内容
              iframe = driver.find_element_by_xpath("//a[contains(text,'运行代码')] momselect")
              result = Select(driver.find_element(By.CSS_SELECTOR, "body:nth-child(2) select:nth-child(1)")).options

              注意事项

              • 确保定位方式准确,避免Not Found错误。
              • 不同网页下拉框结构可能不同,需要根据实际情况调整定位。
              • 测试时,注意下拉框中是否有多选结构,对Select类的支持有影响。
              • 使用select_by_*方法时,要确保有选项匹配,否则可能抛出异常。
              • 有时Need to use WebDriverWait来等待元素加载完毕,防止错过动态加载的内容。

              通过掌握这些方法,可以有效地对下拉框进行操作,提升自动化测试效率。遇到问题再仔细核查定位方式和网页结构,持续练习即可熟练掌握。

    上一篇:web自动化测试js处理日期控件
    下一篇:web自动化测试JavaScript 弹出框处理

    发表评论

    最新留言

    逛到本站,mark一下
    [***.202.152.39]2025年04月18日 06时39分54秒