Selenium3 Python WebDriver API源码探析(17)下拉框(select)支持

概述

Selenium在实现下拉框(select)自动化操作的过程中需要大量代码,因此Selenium专门针对下拉框(select)提供了API,即selenium\webdriver\support\select.py模块中的Select类。

Select类的主要元素如下:

  • __init__(self, webelement):构造方法,检测元素是否为下拉框(select),下拉框是否支持多选。
  • options特性:返回下拉框选项列表。
  • all_selected_options特性:返回下拉框已选选项列表。
  • first_selected_option特性:返回下拉框当前选项。
  • select_by_value( value)方法:根据选项的value属性选择选项。
  • select_by_index( index)方法:根据选项的索引选择选项。
  • select_by_visible_text( text)方法:根据选项的文本选择选项。
  • deselect_all()方法:取消所有已选选项,仅对支持多选的下拉框生效
  • deselect_by_value(value)方法:根据选项的value属性取消已选选项,仅对支持多选的下拉框生效
  • deselect_by_index(self, index)方法:根据选项的索引取消已选选项,仅对支持多选的下拉框生效
  • deselect_by_visible_text(text)方法:根据选项的文本取消已选选项,仅对支持多选的下拉框生效

案例

import selenium.webdriver as webdriver
from selenium.webdriver.support.select import Select

driver = webdriver.Firefox()
driver.get("https://kns.cnki.net/kns/brief/result.aspx?dbprefix=scdb")
# 定位下拉框元素
select_element = driver.find_element_by_id("txt_1_sel")
# 实例化Select对象
select_object = Select(select_element)
# 检测是否支持多选
print(select_object.is_multiple)
# 输出所有选项文本
print([i.text for i in select_object.options])
# 输出所有选项value属性
print([i.get_attribute("value") for i in select_object.options])
# 输出所有已选选项value属性
print([i.get_attribute("value") for i in select_object.all_selected_options])
# 输出当前已选选项value属性
print(select_object.first_selected_option.get_attribute("value"))
# 选择索引为2的选项
select_object.select_by_index(2)
# 输出当前已选选项value属性
print(select_object.first_selected_option.get_attribute("value"))
# 选择value属性为TI的选项
select_object.select_by_value("TI")
# 输出当前已选选项value属性
print(select_object.first_selected_option.get_attribute("value"))
# 选择文本为全文的选项
select_object.select_by_visible_text("全文")
# 输出当前已选选项value属性
print(select_object.first_selected_option.get_attribute("value"))
driver.quit()

结果为:

None
['主题', '篇关摘', '关键词', '篇名', '摘要', '全文', '被引文献', '中图分类号', 'DOI']
['SU$%=|', 'TKA$%=|', 'KY', 'TI', 'AB', 'FT', 'RF', 'CLC$=|??', 'ZCDOI$=|?']
['SU$%=|']
SU$%=|
KY
TI
FT
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值