一:前言
自动化测试时经常遇到下拉框的测试。 今天写个小案例来演示处理方法。
二:操作
①先写个下拉框页面:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试</title>
</head>
<body>
<select id="demo">
<option value="001">第一个</option>
<option value="002">第二个</option>
<option value="003">第三个</option>
<option value="004">第四个</option>
</select>
</body>
页面样式如下所示: ②用到的方法:
#index从0开始
select_by_index(index)
#value是option标签的属性值,还可为class、titile、name,不显示在下拉框中
select_by_value(value)
#visible_text是option标签中的文本值,显示在下拉框中
select_by_visible_text(text)
③在Pycharm中写方法:
from selenium.webdriver.support.select import Select 或from selenium.webdriver.support.ui import Select
form selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.get('页面路径')
#Select方法也可以用到后面,为节约代码量,写到了这里
target = Select(driver.find_element_by_id('id'))
#开始使用方法
#选择第二项选项
result1 = target.select_by_index(1)
#选择属性value="002"的选项
result2 = target.select_by_value("002")
#选择文本为第二个的选项
result3 = target.select_by_visible_text("第二个")
补充延申:
(1)取消选择的:
#index从0开始,取消选择
deselect_by_index(index)
#value是option标签的属性值,还可为class、titile、name,不显示在下拉框中,取消选择
deselect_by_value(value)
#visible_text是option标签中的文本值,显示在下拉框中,取消选择
deselect_by_visible_text(text)
#全部取消选择
deselect_all()
使用方法:
target = Select(driver.find_element_by_id('id'))
result = target.方法()
(2)查看选择的是哪项的:
#返回select所有的options
options
#返回所有被勾选的options
all_selected_options
#返回第一个被勾选的option
first_selected_option
使用方法:
target = Select(driver.find_element_by_id('id'))
for select in target.方法:
print select.text
|