因為用心,才會喜歡

粥雨

Selenium - 元素操作(3) - 下拉框操作

Selenium - 元素操作


  • 下拉框才做可以分为两类:

    • select标签的下拉框:使用Select类进行操作;

    • 非select标签的下拉框:一般是 ulli, 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

posted @ 2022-09-14 11:33  粥雨  阅读(1905)  评论(0编辑  收藏  举报