澳门新浦京娱乐场网站-www.146.net-新浦京娱乐场官网
做最好的网站

单选框和复选框,多选框的操作

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

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

复选框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:MyCodesPythondemosXuePython.wanghtmlcheck_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方法是用于判断是否显示

运行输出结果如下:

澳门新浦京娱乐场网站 1

本文首发于学Python网:

复选框checkbox和单选框radio是web网站里经常会使用到的两个控件,那...

本篇主要介绍单选框和复选框的操作

简介

下拉框:

html测试页面代码如下:

一、认识单选框和复选框

​ Splinter是一个使用Python开发的开源Web应用自动化测试工具,它可以帮助你实现自动浏览站点和与其交互。

//得到下拉菜单的选中项的文本(注意中间有空格)
var cc1 = $(".formc select[@name='country'] option[@selected]").text();
//得到下拉菜单的选中项的值
var cc2 = $('.formc select[@name="country"]').val();
//得到下拉菜单的选中项的ID属性值
var cc3 = $('.formc select[@name="country"]').attr("id");
单选框和复选框,多选框的操作。//清空下拉框//
$("#select").empty();$("#select").html('');
//添加下拉框的option
$("<option value='1'>1111</option>").appendTo("#select")

<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>

    1.先认清楚单选框和复选框长什么样

特性

稍微解释一下:

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

 澳门新浦京娱乐场网站 2

  1. 可以模拟浏览器行为,访问指定的URL,并且可以指定不同的浏览器类型。比如firefox或者chrome等。不同的浏览器只要在本地安装对应的驱动,就可以在代码中通过名称指定来访问。
  2. 支持cookie操作,可以很方便的添加和删除cookie;
  3. 支持模拟鼠标的动作,比如滑动到某个按钮上,焦点离开某个按钮等等,对于带有动态提示的页面,如搜索引擎的关键字输入框的动态提示,可以非常方便的测试。
  4. 支持模拟键盘的输入操作,对input等控件的输入可以模拟用户的type过程。
  5. 支持直接运行js或者调用页面的js。
  6. 支持模拟上传文件。
  7. 对radio和checkbox有专门的api支持,非常方便;
  8. 支持快速的获取页面的元素或者判断是否存在文本,用于开发判断页面提示信息是否准确非常方便。
  9. 最重要的,splinter的API非常简单,配合官方的文档学习成本几乎是0,当然你得懂一些python语法。如果你比较了解js和css,你可能会像喜欢jquery一样喜欢它;

select[@name='country'] option[@selected]

Python代码练习:

 

应用场景

表示具有name 属性,并且该属性值为'country' 的select元素里面的具有selected 属性的option 元素。可以看出有@开头的就表示后面跟的是属性。

# 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:MyCodesPythondemosXuePython.wanghtmlcheck_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() 

    2.各位小伙伴看清楚哦,上面的单选框是圆的;下图复选框是方的,这个是业界的标准,要是开发小伙伴把图标弄错了,可以先抽他了。

  • 自动化表单处理
    • 复杂的表单数据提交
    • 表单安全验证
  • 自动化流程处理
    • 流程状态验证
    • 数据断言验证

单选框:

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

二、radio和checkbox源码

常用元素定位方法

//得到单选框的选中项的值(注意中间没有空格)
$("input[@type=radio][@checked]").val();
//设置单选框value=2的为选中状态.(注意中间没有空格)
$("input[@type=radio][@value=2]").attr("checked",'checked');

  • find_elements_by_tag_name根据标签名称获得元素列表

  • get_attribute获取某个属性

  • is_enabled方法是用于判断是否可用

  • is_selected方法是用于判断是否选中

  • is_displayed方法是用于判断是否显示

    1.上图的html源码如下,把下面这段复杂下来,写到文本里,后缀改成.html就可以了。

  • 唯一性定位(id定位):browser.find_by_id('id')
  • 控件名定位(name定位):browser.find_by_name('name')
  • 样式型定位(css定位):browser.find_by_css('.h1')
  • 值定位(value定位):browser.find_by_value('value')
  • 内容型定位(text定位):browser.find_by_text('text')
  • 超链接定位(link定位):browser.find_link_by_href('url')
  • 路径式定位(xpath定位):browser.find_by_xpath('//path')
  • 标签定位(tag定位):browser.find_by_tag('tag')

复选框:

运行输出结果如下:

 <html>  
    <head>  
    <meta http-equiv="content-type" content="text/html;charset=utf-8" />  
    <title>单选和复选</title>  
    </head>  
    <body>  
    
    </form>  
    <h4>单选:性别</h4>   
    <form>  
    <label value="radio">男</label>   
    <input name="sex" value="male" id="boy" type="radio"><br>  
    <label value="radio1">女</label>  
    <input name="sex" value="female" id="girl" type="radio">  
    </form>  
    
    <h4>微信公众号:从零开始学自动化测试</h4>  
    <form>  
    <!-- <label for="c1">checkbox1</label> -->  
    <input id="c1" type="checkbox">selenium<br>  
    <!-- <label for="c2">checkbox2</label> -->  
    <input id="c2" type="checkbox">python<br>  
    <!-- <label for="c3">checkbox3</label> -->  
    <input id="c3" type="checkbox">appium<br>  
    
    <!-- <form>  
    <input type="radio" name="sex" value="male" /> Male  
    <br />  
    <input type="radio" name="sex" value="female" /> Female  
    </form> -->  
      
    </body>  
    </html> 

常用操作事件

//得到复选框的选中的第一项的值
$("input[@type=checkbox][@checked]").val();
//由于复选框一般选中的是多个,所以可以循环输出
$("input[@type=checkbox][@checked]").each(function(){
alert($(this).val());
});
//不打勾
$("#chk1").attr("checked",'');
//打勾
$("#chk2").attr("checked",true);
//判断是否已经打勾
if($("#chk1").attr('checked')==undefined){}

澳门新浦京娱乐场网站 3

三、单选:radio

  • 点击事件:click
  • 填充事件:fill
  • 下拉框选择事件:select
  • 单选框选择事件:choose
  • 复选框选择事件:check/uncheck
  • 鼠标事件:mouse_over/mouse_out
  • 键入式填充事件,类似于MouseDown和MouseUp事件:type

您可能感兴趣的文章:

  • js和jquery分别验证单选框、复选框、下拉框
  • JQuery判断radio(单选框)是否选中和获取选中值方法总结
  • jquery单选框radio绑定click事件实现方法
  • jquery对单选框,多选框,文本框等常见操作小结
  • jquery操作下拉列表、文本框、复选框、单选框集合(收藏)
  • 澳门新浦京娱乐场网站,Jquery为单选框checkbox绑定单击click事件
  • jquery 操作单选框,复选框,下拉列表实现代码
  • jQuery遍历Form示例代码
  • jQuery插件form-validation-engine正则表达式操作示例
  • jquery表单插件form使用方法详解
  • jQuery表单插件ajaxForm实例详解
  • jQuery Form表单取值的方法
  • jQuery简单实现遍历单选框的方法

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

  1.首先是定位选择框的位置

第一个Splinter脚本

 澳门新浦京娱乐场网站 4

import splinter

if __name__ == "__main":
  #创建浏览器,参数为浏览器名称
  browser = splinter.Browser('chrome')
  #访问百度
  browser.visit("https://www.baidu.com")
  #百度首页的输入框name为'wd',实现自动输入。第一个参数为组件的name,第二个参数为内容
  browser.fill('wd','马化腾')
  #寻找id为'su'的组件,并执行点击事件
  browser.find_by_id('su').click()

 

  2.定位id,点击图标就可以了,代码如下(获取url地址方法:把上面源码粘贴到文本保存为.html后缀后用浏览器打开,在浏览器url地址栏复制出地址就可以了)

  3.先点击boy后,等十秒再点击girl,观察页面变化

 澳门新浦京娱乐场网站 5

四、复选框:checkbox

  1.勾选单个框,比如勾选selenium这个,可以根据它的id=c1直接定位到点击就可以了

 澳门新浦京娱乐场网站 6

   2.那么问题来了:如果想全部勾选上呢?

五、全部勾选:

    1.全部勾选,可以用到定位一组元素,从上面源码可以看出,复选框的type=checkbox,这里可以用xpath语法:.//*[@type='checkbox']

 澳门新浦京娱乐场网站 7

     2.这里注意,敲黑板做笔记了:find_elements是不能直接点击的,它是复数的,所以只能先获取到所有的checkbox对象,然后通过for循环去一个个点击操作

六、判断是否选中:is_selected()

    1.有时候这个选项框,本身就是选中状态,如果我再点击一下,它就反选了,这可不是我期望的结果,那么可不可以当它是没选中的时候,我去点击下;当它已经是选中状态,我就不点击呢?那么问题来了:如何判断选项框是选中状态?

    2.判断元素是否选中这一步才是本文的核心内容,点击选项框对于大家来说没什么难度。获取元素是否为选中状态,打印结果如下图。

    3.返回结果为bool类型,没点击时候返回False,点击后返回True,接下来就很容易判断了,既可以作为操作前的判断,也可以作为测试结果的判断

 澳门新浦京娱乐场网站 8

七、参考代码:
# coding:utf-8
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("file:///C:/Users/Gloria/Desktop/checkbox.html")
# 没点击操作前,判断选项框状态
s = driver.find_element_by_id("boy").is_selected()
print s
driver.find_element_by_id("boy").click()
# 点击后,判断元素是否为选中状态
r = driver.find_element_by_id("boy").is_selected()
print r

# 复选框单选
driver.find_element_by_id("c1").click()
# 复选框全选
checkboxs = driver.find_elements_by_xpath(".//*[@type='checkbox']")
for i in checkboxs:
    i.click()

本文由澳门新浦京娱乐场网站发布于www.146.net,转载请注明出处:单选框和复选框,多选框的操作