吾八哥学Selenium(三):操作复选框checkbox/单选框radio的方法

复选框checkbox和单选框radio是web网站里经常会使用到的两个控件,那么在web自动化测试的时候如何利用Selenium来操作这俩控件呢?今天我们就来简单入门练习一下!

html测试页面代码如下:

<html>
 <head>
  <meta http-equiv="content-type" content="text/html;charset=utf-8" />
  <title>学Python网 - selenium学习测试页面</title>
 </head>
 <body>
  <h2>请选择你喜欢的开发语言</h2>
  <form>
   <p><input type="checkbox" id="c1" />C/C++</p>
   <p><input type="checkbox" id="c2" />Java</p>
   <p><input type="checkbox" id="c3" />Python</p>
   <p><input type="checkbox" id="c4" />PHP</p>
   <p><input type="checkbox" id="c5" />Golang</p>
  </form>
  <h2>您是否喜欢您现在的工作?</h2>
  <form>
   <p><input type="radio" name="lovework" value="love" id="rlove" />喜欢</p>
   <p><input type="radio" name="lovework" value="hate" id="rhate" />不喜欢</p>
   <p><input type="radio" name="lovework" value="none" id="rnone" />无所谓</p>
  </form>
 </body>
</html>

从HTML代码看,这里面的复选框checkbox和单选框radio都是input标签,那么我们可以遍历出所有的input标签元素了,而且这些元素也都有id,所以find_element_by_id和find_element_by_xpath操作单个元素也都是可行的。

Python代码练习:

# Autor: 5bug
# WebSite: http://www.XuePython.wang
# 学Python网QQ群: 643829693
from selenium import webdriver

driver = webdriver.Chrome("C:/Users/5bug/AppData/Local/Google/Chrome/Application/chromedriver.exe")
driver.maximize_window()
driver.get(‘file:///E:\MyCodes\Python\demos\XuePython.wang\html\check_radio.html‘)

#遍历得到checkbox/radio,并勾选指定的checkbox/radio
inputs = driver.find_elements_by_tag_name("input")
for input in inputs:
    # 读取元素id
    attr_id = input.get_attribute("id")
    print(attr_id)
    element_type = input.get_attribute("type")
    if element_type == "checkbox":
        #如果id在爱好的id数组内则勾选
        if input.is_enabled() & (attr_id in ["c1", "c3"]) & (not input.is_selected()):
            input.click()
    elif element_type == "radio":
        #勾选喜欢现在的工作选项
        if (attr_id == "rlove") & input.is_enabled() & (not input.is_selected()):
            input.click() 

这里用到了下面几个方法:

  • find_elements_by_tag_name根据标签名称获得元素列表
  • get_attribute获取某个属性
  • is_enabled方法是用于判断是否可用
  • is_selected方法是用于判断是否选中
  • is_displayed方法是用于判断是否显示

运行输出结果如下:

本文首发于学Python网:http://www.XuePython.wang

原文地址:https://www.cnblogs.com/5bug/p/8503158.html

时间: 2024-10-27 19:35:57

吾八哥学Selenium(三):操作复选框checkbox/单选框radio的方法的相关文章

吾八哥学Selenium(四):操作下拉框select标签的方法

我们在做web页面自动化测试的时候会经常遇到<select></select>标签的下拉框,那么在Python里如何实现去操作这种控件呢?今天就给大家分享一下这个玩法.为了让大家学习更方便,我准备了一个测试页面. 测试的html页面代码为: <html> <head> <title>学Python网 - Selenium学习测试页面</title> <body> 请选择2018年春节回家的方式! <select id

吾八哥学Python(三):了解Python基础语法(上)

学习一门开发语言首先当然是要熟悉它的语法了,Python的语法还算是比较简单的,这里从基础的开始了解一下. 标识符1.第一个字符必须是字母表中字母或下划线'_'.2.标识符的其他的部分有字母.数字和下划线组成.3.标识符对大小写敏感. 保留字保留字就是关键字,不能用它们做任何标识符.Python里通过有一个keyword 模块,执行keyword.kwlist可以输出当前版本的所有保留字,如下: ['False', 'None', 'True', 'and', 'as', 'assert', '

吾八哥学Selenium(二):操作输入框/按钮的方法

一个web页面一定少不了输入框或者按钮这两种元素,那么在Python里如何使用Selenium操作web页面里的输入框和按钮呢?本文带你简单入门. 本文采用了一个例子,就是利用Selenium打开百度网页,然后进行搜索关键字"Python",执行搜索动作.具体代码如下: Python # Autor: 5bug # WebSite: http://www.XuePython.wang # 学Python网QQ群: 643829693 from selenium import webdr

对jquery操作复选框

摘要:jquery操作复选框.使用更简洁易懂,思路清晰,逻辑更明了,很实用 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="jquery-1.11.2.min.js"></script><!--引入jquery-1.11.2.min.js要在最上面--

jquery操作复选框(checkbox)的12个小技巧总结

1.获取单个checkbox选中项(三种写法)$("input:checkbox:checked").val()或者$("input:[type='checkbox']:checked").val();或者$("input:[name='ck']:checked").val(); 2. 获取多个checkbox选中项$('input:checkbox').each(function() {        if ($(this).attr('che

Jquery学习笔记:操作form表单元素之二(复选框和单选框)

在上面文章的基础上,我们介绍如何操作表单元素中的 复选框和单选框. 一.复选框 <label> <input type="checkbox" id="item" checked> 全选</label> 注意,input标签要放在label标签内,这样点击文字时也会有反映. 如果选中了,调用  $("#item").prop("checked")返回true,否则返回false 同样利用pro

jQuery 操作复选框(checkbox) attr checked不起作用

jQuery 更改checkbox的状态,无效 $(this).attr("checked", false).checkboxradio("refresh");     //应该这么写吧,少了$这个东东~~~跟js混淆了 jQuery 操作复选框(checkbox) attr checked不起作用 这 天用到jQuery功能,想实现一个简单的复选框动态全选或全不选,结果测试发现 attr(‘checked’,'checked’);与attr(‘checked’,t

javascript 操作复选框无效

<script type="text/javascript"> // 操作checkbox复选框按钮 var inputs = $('#article_list').find("input[name='articleId[]']"); $('#article_list .all_checkbox').click(function() { for(var i = 0; i < inputs.length; i++) { if($(this).is(&

js操作复选框 复选框

//复选框点击事件 function checkAll(){ let tp=$("#tp").val(); let all=$("input[name='id']"); if(tp==1){for(let i=0;i<all.length;i++){ all[i].checked=true; } }else{for(let i=0;i<all.length;i++){ all[i].checked=false; } } } js操作复选框.改变选中效果