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单选框、勾选框、复选框操作详解相关推荐

  1. 在reader中勾选pdf复选框_绝对可勾选的在WORD 2003中加入复选框的方法

    绝对可勾选的在 word 2003 中加入复选框的方法 方法一: 要在 word 2003 中加入复选框,最好是使用"控件工具箱"来完成. 具体方法是: 打开 Word ,依次点击 ...

  2. 在reader中勾选pdf复选框_轻松控制PDF文件的打开方式

    经常在网上下载资料的朋友们一定都有过这样的烦恼,现在不少资料在网上都是以PDF格式提供下载的,所以在安装有Adobe PDF Reader的电脑上,我们的IE总会"自作主张"地在它 ...

  3. Excel插入可以勾选的复选框

    打开选项 2. 在自定义功能区勾选开发工具 选中复选框拖拽到单元格,调整位置和后面的文字(为了避免前一单元格的文字覆盖,在复选框所在的单元格可以敲一个空格) 没敲空格 敲空格 鼠标放在单元格右下角那个 ...

  4. 关于CheckBox勾选隐藏和显示,以及导出勾选的复选框的excel文档

    前台显示页面: 然后点击展开按钮: 勾选展开或者收起里的复选框,或者勾选序号里的复选框,点击翻译后还会记住之前的勾选,点击excel导出,可以导出你任意勾选的复选框的数据,下面是对应的前台jsp,后台 ...

  5. vb中复选框的value属性_单选控件(OptionButton)与复选控件(CheckBox)的Value值

    1 . 单选控件( OptionButton )与复选控件( CheckBox )的 Value . . . . . 值. 1 ) Value 属性是单选与复选控件最主要的属性 ,单选与复选控件的 V ...

  6. java得到选择的复选框_java怎么获取复选框的值_java学习记录20200817

    2020.08.17-2020.08.23学习计划: (1)完成前端知识积累HTML+CSS+JavaScript(周一至周四) (2)完成ssm两门课复习(周一至周五) (3)完成所有已学代码的熟悉 ...

  7. PyQt5 技巧篇-复选框绑定行内容,全选、清空、展示选中的内容功能实现演示,设置复选框选中,检查复选框选中状态

    先看效果图,选中了几行,然后将选中的内容展示出来. 我设置两个有序序列,分别存储对应的复选框和行内容. 我的行内容是用的 label 标签. # 存储右边label组件的有序列表def get_L_b ...

  8. 5、Web 窗体的基本控件——复选框控件和复选组控件(CheckBox 和 CheckBoxList)

    5.Web 窗体的基本控件--复选框控件和复选组控件(CheckBox 和 CheckBoxList) 复选框控件和复选组控件(CheckBox 和 CheckBoxList) 前端 <%@ P ...

  9. JS基础入门篇(四)—this的使用,模拟单选框,选项卡和复选框

    1.this的使用 thisjs中的关键字js内部已经定义好了,可以不声明 直接使用 this的指向问题1. 在函数外部使用this指向的是window2. 在函数内部使用有名函数直接调用函数 thi ...

最新文章

  1. 深入理解 Laravel Eloquent(三)——模型间关系(关联)
  2. imp 只导表前10条数据_Excel数据规范化10条原则,让你的工作效率快速提升
  3. 采用串口DMA双缓冲方法,快速更新外部FLASH中文字库
  4. Vscode配置C语言问题
  5. Windows过滤驱动程序的概念
  6. 向大家推荐一个.Net游戏引擎:Artificial Engines
  7. 【整理】BIOS、BootLoader、uboot对比
  8. 开红数显示服务器为空,网维大师常见问题:图标空白或红号问号
  9. 转:怎样开始学习php代码审计?
  10. Python模拟汉诺塔问题移动盘子的过程
  11. input hidden的值存储在哪儿_kafka内核:消息存储模块的工作机制
  12. Visual Studio 2010修改授权
  13. 【WebGoat习题解析】AJAX Security-Insecure Client Storage
  14. scala中的apply方法与unapply方法
  15. php 字符串大写转小写转大写,字符串大小写批量互相转换 - 在线工具
  16. YOLOv5损失函数定义
  17. opencv颜色识别学习总结
  18. C 语言编程 经典例题 猴子吃桃问题:
  19. 注册一个私人网站至少要多少钱(注册步骤)
  20. 聊城大学计算机应用基础,聊城大学试题计算机应用基础试题.doc

热门文章

  1. 智慧社区智能化安防管理系统的解决方案
  2. python+nodejs+vue的生鲜交易系统-o2o生鲜商城网站
  3. 自己开店怎么办会员卡-云上铺会员管理系统
  4. python储物柜难题_这些省空间的家具设计,让你的小家变大不再是难题|附收纳整理小技巧...
  5. 赛元微MCU——SC92F846xB移植官方触控库文件
  6. EndNote更改同步位置
  7. 移通创联MODBUS转PROFIBUS网关和霍尼韦尔DCS系统之间通讯
  8. 二级计算机水平考试总分,计算机二级考试多少分及格可以拿证
  9. 江苏省计算机考试准考证在哪打印
  10. 一个音乐播放器的踩坑实践