lenium之下拉选择框Select
⼀、前⾔
lenium的下拉选择框。我们通常会遇到两种下拉框,⼀种使⽤的是html的标签lect,另⼀种是使⽤input标签做的假下拉框。后者我们通常的处理⽅式与其他的元素类似,点击或使⽤JS等。⽽对于前者,lenium给了有⼒的⽀持,就是Select类。
⽹页及对应源码:
⼆、关于导⼊⽅式
两种导⼊⽅式:
from lenium.webdriver.support.ui import Select
# 或者直接从lect导⼊
from lenium.webdriver.support.lect import Select
三、选择、反选、选项的实战应⽤例⼦
话不多说,直接上代码:
# -*- coding: utf-8 -*-
芨芨草"""
@author: lucas
@Function:
@file: lectStudy.py
@time: 2021/8/20 1:27 下午
"""
import unittest
import time
from lenium import webdriver
from lenium.webdriver.support.ui import Select
class SelectStudy(unittest.TestCa):
def tUp(lf):
反应能力# 创建⼀个Chrome WebDriver的实例
lf.driver = webdriver.Chrome()
大病救助怎么办# 选择页⾯第⼀个下拉框,依次选择值O1-O3
def test_lectO1ToO3(lf):
driver = lf.driver
<('/demo/lectTest.htm')
# 实例化Select
s1 = Select(driver.find_element_by_id('s1Id'))
# 查看选择框的默认值
print s1.first_
# 选择第⼆个选项o1
s1.lect_by_index(1)
time.sleep(3)
# 为了⽅便查看效果,可以加上等待时间
time.sleep(3)
# 选择value="o2"的项,value是option标签的⼀个属性值,并不是显⽰在下拉框中的值
s1.lect_by_value("o2")
# 查看选中选择框的默认值
print s1.first_
time.sleep(3)
# 选择text="o3"的值,即在下拉时我们可以看到的⽂本,visible_text是在option标签中间的值,是显⽰在下拉框的值 s1.lect_by_visible_text("o3")
time.sleep(3)
# 反选操作,包括取消某个值和全部取消
def test_cancel_lect(lf):
driver = lf.driver
<('/demo/lectTest.htm')
s4 = Select(driver.find_element_by_id('s4Id'))
# 全选
for option in s4.options:
if not option.is_lected():
s4.lect_by_visible_)
time.sleep(3)
# 根据index取消选中
s4.delect_by_index(0)
time.sleep(3)
# 根据value取消选中
s4.delect_by_value("o1val")
time.sleep(5)
# 根据标签⽂本选中
s4.delect_by_visible_text("o2")
time.sleep(5)
# 全选
for option in s4.options:
if not option.is_lected():
s4.lect_by_visible_)
time.sleep(3)
# 取消选中所有选项
s4.delect_all()
# 查看选中项⽬
"""
输出结果为:
妲己技能o1
o2
With spaces
With nbsp
闺蜜干政"""
def test_view_lection(lf):
人生感悟语句driver = lf.driver
<('/demo/lectTest.htm')
s4 = Select(driver.find_element_by_id('s4Id'))
s4 = Select(driver.find_element_by_id('s4Id'))
# 查看选择框的默认值
巧克力怎么保存s4.lect_by_index(1)
s4.lect_by_value("o2val")
s4.lect_by_visible_text("With spaces")
s4.lect_by_value("o4val")
for lect in s4.all_lected_options:
def tearDown(lf):
lf.driver.clo()
if __name__ == "__main__":
unittest.main()
注意:
反选(delect)取消操作只适⽤于添加了multiple的下拉框,否则会报错
rai NotImplementedError("You may only delect options of a multi-lect") NotImplementedError: You may only delect options of a multi-lect
四、总结
1、Select提供了三种选择⽅法:
lect_by_index(index) ——通过选项的顺序,第⼀个为 0
lect_by_value(value) ——通过value属性
lect_by_visible_text(text) ——通过选项可见⽂本
2、Select提供了四种⽅法取消选择:
delect_by_index(index)
delect_by_value(value)
delect_by_visible_text(text)
delect_all()
3、Select提供了三个属性⽅法给我们必要的信息:
options ——提供所有的选项的列表,其中都是选项的WebElement元素
all_lected_options ——提供所有被选中的选项的列表,其中也均为选项的WebElement元素
first_lected_option ——提供第⼀个被选中的选项,也是下拉框的默认值明天高速收费吗