1、说明
select类时slenium为操作select标签特殊封装的
2、实例化对象
select = Select(element)
element:<select>标签对应的元素,通过元素定位方式获取,
例如:driver.find_element_by_id(“selectA”)
3、操作方法
1)、select_by_index(index) —>根据option索引来定位,从0开始
2)、select_by_value(value) —->根据option属性value值来定位
3)、select_by_visible_text(text) —>根据option显示文本定位
4、步骤
1)、导包select类
2)、获取select对象
匿名:Select(element).select_by_index()
实名:select = Select(element)
调用:select.select_by_index()
执行代码:
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select
driver = webdriver.Chrome()
driver.get('https://kyfw.12306.cn/otn/leftTicket/init?linktypeid=dc')
# 隐式等待30秒
driver.implicitly_wait(30)
# 窗口最大化
driver.maximize_window()
# 定位下拉选框的位置
ele = driver.find_element(By.ID,'cc_start_time')
# 通过select类中index方法定位18:00--24:00
select = Select(ele)
select.select_by_index(4)
time.sleep(3)
# 通过select类中value方法定位6:00--12:00
select.select_by_value('06001200')
time.sleep(3)
# 通过select类中文本方法定位00:00--24:00
select.select_by_visible_text('00:00--24:00')
time.sleep(3)
# 通过css方法定位12:00--18:00
ele1 = driver.find_element(By.CSS_SELECTOR,'#cc_start_time > option:nth-child(4)').click()
time.sleep(3)
# 退出浏览器
driver.quit()
5、注意
1)、select类是通过select标签来控制其下的option元素
2)、element:只能是select标签
①、为什么单独使用下拉选框?
1)、如果option选项没有value值的话,css定位或者其他定位就不太方便
②、如何使用Select类?
1)、导包select类:from selenium.webdriver.support.select import Select
2)、获取select对象
匿名:Select(element).select_by_index()
实名:select = Select(element)
调用:select.select_by_index()
③、提供了哪些方法?
1)、select_by_index(index) —>根据option索引来定位,从0开始
2)、select_by_value(value) —->根据option属性value值来定位
3)、select_by_visible_text(text) —>根据option显示文本定位
④、注意事项
1)、实例化select时,需要的参数为select标签元素。
2)、调用Select类下面的方法,是通过索引、value属性值、显示文本去控制,而不需要click事件。
作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:开心螺蛳粉】自提!
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群:1150305204,里面有各种测试开发资料和技术可以一起交流哦。