Selenium单选框、勾选框、复选框操作详解
webdriver可以很方便的使用findElement方法来定位某个特定的对象,不过有时候我们却需要定位一组对象,这时候就需要使用findElements方法。
1、单选框和多选框
我们可以自己写一个简单的页面,该文件保存格式为名称.html,在操作的过程中我把html文件和python文件放在了同一级目录下;
box.html代码如下:
<html><head><meta http-equiv="content-type" content="text/html;charset=utf-8" /><title>Checkbox</title><script type="text/javascript" async="" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script><link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet" /><script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script></head><body><h3>模拟测试</h3><div class="well"><form class="form-horizontal"><div class="control-group"><label class="control-label" for="c1">喝酒</label><div class="controls"><input type="checkbox" id="c1" /></div></div><div class="control-group"><label class="control-label" for="c2">上网</label><div class="controls"><input type="checkbox" id="c2" /></div></div><div class="control-group"><label class="control-label" for="c3">睡觉</label><div class="controls"><input type="checkbox" id="c3" /></div></div><div class="control-group"><label class="control-label" for="r">男</label><div class="controls"><input type="radio" id="r1" /></div></div><div class="control-group"><label class="control-label" for="r">女</label><div class="controls"><input type="radio" id="r2" /></div></div></form></div></body>
</html>
python代码如下:
from selenium import webdriver
import time
import os
driver = webdriver.Chrome(executable_path=r"C:\Users\think\Desktop\chromedriver")
#os.getcwd():当前Python文件所在的路径,没有\需要加上os.sep
file_path = os.getcwd()+os.sep+'box.html'
print(file_path)
driver.get(file_path)
# 选择页面上所有的input,然后从中过滤出所有的checkbox并勾选之
inputs = driver.find_elements_by_tag_name('input')
for input in inputs:if input.get_attribute('type') == 'checkbox':input.click()
time.sleep(2)
driver.quit()
学到这个阶段的同学应该也都已经对CSS选择器有所了解,下面我们使用CSS选择器来实现和上述一样的效果,代码如下:
from selenium import webdriver
import time
import os
driver = webdriver.Chrome(executable_path=r"C:\Users\think\Desktop\chromedriver")
file_path = os.getcwd()+os.sep+'box.html'
print(file_path)
driver.get(file_path)
checkboxs = driver.find_elements_by_css_selector('input[type="checkbox"]')
for checkbox in checkboxs:checkbox.click()
time.sleep(3)
如果想要取消最后一个勾选可以加上代码: driver.find_elements_by_css_selector('input[type="checkbox"]').pop().click();
上面代码只演示了多选框,如果想要操作单选框,把checkbox改成radio即可;
有些同学会提出疑问,想要取消第一个第二个该如何操作呢,我的想法是用is_selected方法来获取选择的状态,如果true,就再次点击一下;如果有些同学有更好的解决方法,欢迎留言!
2、复选框
和上述操作一样,为了方便演示,先编写一个html文件:
<html><head><meta http-equiv="content-type" content="text/html;charset=utf-8" /><title>Checkbox</title><script type="text/javascript" async="" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script><link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet" /><script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script></head>
<p>选择您喜爱的车</p>
<select id="multi" multiple><option value="benc">奔驰S300</option><option value="yage">雅阁</option><option value="BMW" selected="selected">宝马</option><option value="aodi">奥迪</option>
</select>
<p>选择性别</p>
<select id="single"><option value="male">男</option><option value="female" selected="selected">女</option>
</select>
python编写需要先导如Select类:from selenium.webdriver.support.ui import Select;注意Select类只适用于元素必须是select类型的;
# 先使用deselect_all把勾选的全部去掉
# 然后在用select_by_visible_text 进行勾选# 获取对应的element
time.sleep(2)
select = Select(driver.find_element_by_xpath('//*[@id="multi"]'))#先去掉所有选择的项
time.sleep(2)
select.deselect_all()#然后选择
time.sleep(2)
select.select_by_visible_text('雅阁')
select.select_by_visible_text('奥迪')# 如果是单选框就直接用
select.select_by_visible_text('男')
Selenium单选框、勾选框、复选框操作详解相关推荐
- 在reader中勾选pdf复选框_绝对可勾选的在WORD 2003中加入复选框的方法
绝对可勾选的在 word 2003 中加入复选框的方法 方法一: 要在 word 2003 中加入复选框,最好是使用"控件工具箱"来完成. 具体方法是: 打开 Word ,依次点击 ...
- 在reader中勾选pdf复选框_轻松控制PDF文件的打开方式
经常在网上下载资料的朋友们一定都有过这样的烦恼,现在不少资料在网上都是以PDF格式提供下载的,所以在安装有Adobe PDF Reader的电脑上,我们的IE总会"自作主张"地在它 ...
- Excel插入可以勾选的复选框
打开选项 2. 在自定义功能区勾选开发工具 选中复选框拖拽到单元格,调整位置和后面的文字(为了避免前一单元格的文字覆盖,在复选框所在的单元格可以敲一个空格) 没敲空格 敲空格 鼠标放在单元格右下角那个 ...
- 关于CheckBox勾选隐藏和显示,以及导出勾选的复选框的excel文档
前台显示页面: 然后点击展开按钮: 勾选展开或者收起里的复选框,或者勾选序号里的复选框,点击翻译后还会记住之前的勾选,点击excel导出,可以导出你任意勾选的复选框的数据,下面是对应的前台jsp,后台 ...
- vb中复选框的value属性_单选控件(OptionButton)与复选控件(CheckBox)的Value值
1 . 单选控件( OptionButton )与复选控件( CheckBox )的 Value . . . . . 值. 1 ) Value 属性是单选与复选控件最主要的属性 ,单选与复选控件的 V ...
- java得到选择的复选框_java怎么获取复选框的值_java学习记录20200817
2020.08.17-2020.08.23学习计划: (1)完成前端知识积累HTML+CSS+JavaScript(周一至周四) (2)完成ssm两门课复习(周一至周五) (3)完成所有已学代码的熟悉 ...
- PyQt5 技巧篇-复选框绑定行内容,全选、清空、展示选中的内容功能实现演示,设置复选框选中,检查复选框选中状态
先看效果图,选中了几行,然后将选中的内容展示出来. 我设置两个有序序列,分别存储对应的复选框和行内容. 我的行内容是用的 label 标签. # 存储右边label组件的有序列表def get_L_b ...
- 5、Web 窗体的基本控件——复选框控件和复选组控件(CheckBox 和 CheckBoxList)
5.Web 窗体的基本控件--复选框控件和复选组控件(CheckBox 和 CheckBoxList) 复选框控件和复选组控件(CheckBox 和 CheckBoxList) 前端 <%@ P ...
- JS基础入门篇(四)—this的使用,模拟单选框,选项卡和复选框
1.this的使用 thisjs中的关键字js内部已经定义好了,可以不声明 直接使用 this的指向问题1. 在函数外部使用this指向的是window2. 在函数内部使用有名函数直接调用函数 thi ...
最新文章
- 深入理解 Laravel Eloquent(三)——模型间关系(关联)
- imp 只导表前10条数据_Excel数据规范化10条原则,让你的工作效率快速提升
- 采用串口DMA双缓冲方法,快速更新外部FLASH中文字库
- Vscode配置C语言问题
- Windows过滤驱动程序的概念
- 向大家推荐一个.Net游戏引擎:Artificial Engines
- 【整理】BIOS、BootLoader、uboot对比
- 开红数显示服务器为空,网维大师常见问题:图标空白或红号问号
- 转:怎样开始学习php代码审计?
- Python模拟汉诺塔问题移动盘子的过程
- input hidden的值存储在哪儿_kafka内核:消息存储模块的工作机制
- Visual Studio 2010修改授权
- 【WebGoat习题解析】AJAX Security-Insecure Client Storage
- scala中的apply方法与unapply方法
- php 字符串大写转小写转大写,字符串大小写批量互相转换 - 在线工具
- YOLOv5损失函数定义
- opencv颜色识别学习总结
- C 语言编程 经典例题 猴子吃桃问题:
- 注册一个私人网站至少要多少钱(注册步骤)
- 聊城大学计算机应用基础,聊城大学试题计算机应用基础试题.doc
热门文章
- 智慧社区智能化安防管理系统的解决方案
- python+nodejs+vue的生鲜交易系统-o2o生鲜商城网站
- 自己开店怎么办会员卡-云上铺会员管理系统
- python储物柜难题_这些省空间的家具设计,让你的小家变大不再是难题|附收纳整理小技巧...
- 赛元微MCU——SC92F846xB移植官方触控库文件
- EndNote更改同步位置
- 移通创联MODBUS转PROFIBUS网关和霍尼韦尔DCS系统之间通讯
- 二级计算机水平考试总分,计算机二级考试多少分及格可以拿证
- 江苏省计算机考试准考证在哪打印
- 一个音乐播放器的踩坑实践