Selenium - 元素操作(3) - 下拉框操作
Selenium - 元素操作
-
下拉框才做可以分为两类:
-
select标签的下拉框:使用Select类进行操作;
-
非select标签的下拉框:一般是
ul
,li
,div
等标签组成,使用元素定位的方法,首先点击下拉框,然后点击选项。
-
select标签
-
是针对select标签的操作:
-
from selenium.webdriver.support.select import Select
:导入对应的模块 -
select.select_by_index(index)
:通过索引选择,索引从0开始 -
select.select_by_value(value)
:通过option标签的value属性选择 -
select.select_by_visible_text(text)
:通过option标签的文本选择
-
标签元素示例
<SELECT id="status" style="width:150" name="state" selectedIndex="$!{state}">
<OPTION value="aa">全部</OPTION>
<OPTION value="bb">通过</OPTION>
<OPTION value="cc">末通过</OPTION>
<OPTION value="dd">待处理</OPTION>
</SELECT>
代码实例
from selenium import webdriver
from time import sleep
# 导入对应模块
from selenium.webdriver.support.select import Select
driver = webdriver.Chrome()
driver.get('http://www.baidu.com')
# 点开下拉框
driver.find_element_by_link_text('下拉框示例').click()
# 获取下拉框选项
item = Select(driver.find_element_by_id('status'))
- 下拉框选择
# 通过索引index选择
item.select_by_index(3)
# 通过value值选择
item.select_by_value('cc')
# 通过选项文本选择
item.select_by_visible_text('待处理')
- 下拉框取消选择
# 取消所有选择
item.deselect_all()
# 通过索引index取消选择
item.deselect_by_index(3)
# 通过value值取消选择
item.deselect_by_value('cc')
# 通过选项文本取消选择
item.deselect_by_visible_text('待处理')
- 返回选择信息
# 返回第一个选中选项
item.first_selected_option()
# 返回所有已选中选项
item.all_selected_options()
非select标签
-
思路 1:下拉框如果可以输入,那就可以当成输入框来输入就行了
-
1、定位下拉框,并点击展开下拉框
-
2、在下拉框,输入要点击的内容
-
3、选中需要点击的内容
-
TODO
-
思路 2:定位到每一个下拉选项元素,点击操作
-
1、定位下拉框,并点击展开下拉框
-
2、定位需要选中的内容
-
3、点击元素
-
TODO