购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.4 下拉框实战

在自动化测试中定位下拉框控件的场景很常见。WebDriver提供了多种定位下拉框的方式,如引入Select类和元素二次定位等,本节进行下拉框实战。

2.4.1 value属性定位

定位下拉框控件前,首先要引用Select类,该类提供了3种方式,即value、text和index。下面介绍value方法的使用,如图2.17所示。

036-01.jpg

图2.17 下拉框案例界面

示例如下:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from time import sleep
dr = webdriver.Chrome()
url = dr.get("file:///D:/xialakuang.xhtml")
element = dr.find_element(By.ID,"s4Id")
Select(element).select_by_value("o1")

通过id定位到下拉框Select标签控件,将element对象传入Select类中,使用Select类下的value方法定位value值等于o1的元素,如图2.18所示。

036-02.jpg

图2.18 下拉框value案例界面

2.4.2 index属性定位

通过Select类下的index方法来定位下拉框中的值,示例如下:

from selenium import webdriver
from selenium.webdriver.common.by import By      # 引入By类
from selenium.webdriver.support.ui import Select # 引入Select类
from time import sleep
dr = webdriver.Chrome()
url = dr.get("file:///D:/xialakuang.xhtml")
element = dr.find_element(By.ID,"s4Id")
Select(element).select_by_index(1)

select_by_index(1)表示定位到第二个option标签,1表示索引位为1 的option标签。索引位默认从0开始。结果如图2.19所示。

037-01.jpg

图2.19 下拉框index案例界面

2.4.3 visible_text属性定位

visible_text文本属性一般是通过获取元素本身的文本描述来定位的,示例如下:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from time import sleep
dr = webdriver.Chrome()
url = dr.get("file:///D:/xialakuang.xhtml")
element = dr.find_element(By.ID,"s4Id")
Select(element).select_by_visible_text("o3")

select_by_visible_text("o3")表示定位下拉框中options标签中文本描述为o3的元素。结果如图2.20所示。

037-02.jpg

图2.20 下拉框visible_text案例界面

2.4.4 元素二次定位实战

除Select类定位下拉框外,也可以通过二次定位操作下拉框。二次定位可以理解为将两步元素定位合并为一步实现,示例如下:

from selenium import webdriver
from time import sleep
dr = webdriver.Chrome()
url = dr.get("file:///D:/xialakuang.xhtml")
dr.find_element_by_id("s4Id").find_element_by_xpath("//*[@id='id2]').click()

find_element_by_id("s4Id")通过id定位到Select标签,find_element_by_xpath("//*[@id='id2']")通过xpath方法定位Select标签下id属性值为id2的元素。

注意:使用二次定位方法操作下拉框内的元素时,必须增加click单击事件才会生效。 0V3CApwcwJmeGzl9ZFY3TbOSJSOsnFkfzT8CdvpX9Rb5iS1CfHhxg9o9B/arrpjW

点击中间区域
呼出菜单
上一章
目录
下一章
×