selenium中进行元素定位时,复选框和下拉列表是比较特殊的一类网页元素,需要引入Select类来进行选择,Select类的对象有三种选择方法,分别是通过index索引、value属性值和显示的文本来进行选择。
下面是练习代码:
from time import sleep
from selenium.webdriver.support.select import Select
from testMutiWebdriver.setupbrowser import startBrowser
selectDemo_url = 'http://localhost/selenium/selectDemo.html'
def checkbox(url):
br = startBrowser.firefox()
br.maximize_window()
br.get(url)
br.implicitly_wait(10)
# 创建Select对象
selects = Select(br.find_element_by_id("select"))
# 先清除所有默认选项
selects.deselect_all()
# 通过 index 选择元素,索引从0开始
selects.select_by_index(0)
sleep(2)
# 通过 value 值选中 兰博基尼
selects.select_by_value('Lamborghini')
sleep(2)
# 通过文本选中 保时捷
selects.select_by_visible_text('保时捷')
sleep(5)
br.quit()
def select(url):
br = startBrowser.firefox()
br.maximize_window()
br.get(url)
br.implicitly_wait(10)
# 创建Select对象
selects = Select(br.find_element_by_id("selectdemo"))
# 通过 index 选择元素,索引从0开始
selects.select_by_index(0)
sleep(2)
# 通过 value 值选中 女
selects.select_by_value('female')
sleep(2)
# 通过文本选中 男
selects.select_by_visible_text('男')
sleep(5)
br.quit()
if __name__ == '__main__':
# checkbox(selectDemo_url)
select(selectDemo_url)
下面是练习页面的源码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>复选框和下拉列表练习</title>
</head>
<body>
<p>复选框测试</p>
<select id="select" multiple>
<option value="Maserati">玛莎拉蒂</option>
<option value="Lamborghini">兰博基尼</option>
<option value="Ferrari" selected="selected">法拉利</option>
<option value="Porsche">保时捷</option>
</select>
<hr>
<p>下拉框测试</p>
<select id="selectdemo">
<option value="male">男</option>
<option value="female" selected="selected">女</option>
</select>
</body>
</html>