Python如何实现下拉选择框,方法是什么
Admin 2022-07-28 群英技术资讯 1312 次浏览
selenium的下拉选择框。我们通常会遇到两种下拉框,一种使用的是html的标签select,另一种是使用input标签做的假下拉框。
后者我们通常的处理方式与其他的元素类似,点击或使用JS等。而对于前者,selenium给了有力的支持,就是Select类。
进行测试的网站:http://sahitest.com/demo/selectTest.htm
网页及对应源码:
两种导入方式:
from selenium.webdriver.support.ui import Select # 或者直接从select导入 from selenium.webdriver.support.select import Select
话不多说,直接上代码:
# -*- coding: utf-8 -*- """ @author: lucas @Function: @file: selectStudy.py @time: 2021/8/20 1:27 下午 """ import unittest import time from selenium import webdriver from selenium.webdriver.support.ui import Select class SelectStudy(unittest.TestCase): def setUp(self): # 创建一个Chrome WebDriver的实例 self.driver = webdriver.Chrome() # 选择页面第一个下拉框,依次选择值O1-O3 def test_selectO1ToO3(self): driver = self.driver driver.get('http://sahitest.com/demo/selectTest.htm') # 实例化Select s1 = Select(driver.find_element_by_id('s1Id')) # 查看选择框的默认值 print s1.first_selected_option.text # 选择第二个选项o1 s1.select_by_index(1) time.sleep(3) # 为了方便查看效果,可以加上等待时间 time.sleep(3) # 选择value="o2"的项,value是option标签的一个属性值,并不是显示在下拉框中的值 s1.select_by_value("o2") # 查看选中选择框的默认值 print s1.first_selected_option.text time.sleep(3) # 选择text="o3"的值,即在下拉时我们可以看到的文本,visible_text是在option标签中间的值,是显示在下拉框的值 s1.select_by_visible_text("o3") time.sleep(3) # 反选操作,包括取消某个值和全部取消 def test_cancel_select(self): driver = self.driver driver.get('http://sahitest.com/demo/selectTest.htm') s4 = Select(driver.find_element_by_id('s4Id')) # 全选 for option in s4.options: if not option.is_selected(): print option.text s4.select_by_visible_text(option.text) time.sleep(3) # 根据index取消选中 s4.deselect_by_index(0) time.sleep(3) # 根据value取消选中 s4.deselect_by_value("o1val") time.sleep(5) # 根据标签文本选中 s4.deselect_by_visible_text("o2") time.sleep(5) # 全选 for option in s4.options: if not option.is_selected(): s4.select_by_visible_text(option.text) time.sleep(3) # 取消选中所有选项 s4.deselect_all() # 查看选中项目 """ 输出结果为: o1 o2 With spaces With nbsp """ def test_view_selection(self): driver = self.driver driver.get('http://sahitest.com/demo/selectTest.htm') s4 = Select(driver.find_element_by_id('s4Id')) # 查看选择框的默认值 s4.select_by_index(1) s4.select_by_value("o2val") s4.select_by_visible_text("With spaces") s4.select_by_value("o4val") for select in s4.all_selected_options: print select.text def tearDown(self): self.driver.close() if __name__ == "__main__": unittest.main()
注意:
反选(deselect)取消操作只适用于添加了multiple的下拉框,否则会报错
raise NotImplementedError("You may only deselect options of a multi-select")
NotImplementedError: You may only deselect options of a multi-select
1、Select提供了三种选择方法:
select_by_index(index) ——通过选项的顺序,第一个为 0 select_by_value(value) ——通过value属性 select_by_visible_text(text) ——通过选项可见文本
2、Select提供了四种方法取消选择:
deselect_by_index(index) deselect_by_value(value) deselect_by_visible_text(text) deselect_all()
3、Select提供了三个属性方法给我们必要的信息:
options ——提供所有的选项的列表,其中都是选项的WebElement元素
all_selected_options ——提供所有被选中的选项的列表,其中也均为选项的WebElement元素
first_selected_option ——提供第一个被选中的选项,也是下拉框的默认值
1.select_by_visible_text():选项的文本内容
from selenium.webdriver.support.select import Select from time import sleep from selenium import webdriver dr=webdriver.Chrome() dr.get('url') dr.maximize_window() #先定位到下拉框,通过text文本定位 Select(find_element_by_id('q')).select_by_visible_text('苍井空') sleep(2) dr.quit()
2.select_by_value():value属性定位
from selenium.webdriver.support.select import Select from time import sleep from selenium import webdriver dr=webdriver.Chrome() dr.get('url') dr.maximize_window() #先定位到下拉框,通过value属性定位 Select(find_element_by_id('q')).select_by_value('3') sleep(2) dr.quit()
3.select_by_index():索引定位(0开始)
from selenium.webdriver.support.select import Select from time import sleep from selenium import webdriver dr=webdriver.Chrome() dr.get('url') dr.maximize_window() #先定位到下拉框,通过索引定位 Select(find_element_by_id('q')).select_by_index('1') sleep(2) dr.quit()
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章介绍了Python使用openpyxl模块处理Excel文件的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
这篇文章主要介绍了Pyqt5设置返回键和跳转页面键的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
Python中有一些特殊方法的方法名都是以双下划线开始和结束,所以又被称为双下方法。本文就来为大家详细讲讲Python中的双下方法的使用,感兴趣的可以了解一下
常见内置函数即是提前定义好的函数 py文件一创建就有的,直接使用即可 很多内置函数的功能都非常的好用;迭代如何理解,迭代就是更新换代 每次迭代都需要基于上一次的成果更新
torchtext并不是pytorch所独有的,使用其它深度学习框架,torchtext仍然可以使用。但是比较麻烦的是,并没有很好很全面的torchtext教程,给同学们入门造成了一定麻烦,这也是我写这篇文章的目的。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008