《手把手教你》系列技巧篇(三十五)-java+ selenium自动化测试-单选和多选按钮操作-下篇(详解教程)
1.简介
今天这一篇宏哥主要是讲解一下,如何使用list容器来遍历多选按钮。大致两部分内容:一部分是宏哥在本地弄的一个小demo,另一部分,宏哥是利用JQueryUI网站里的多选按钮进行实战。
2.demo准备
2.1demo页面的HTML代码
1.这里宏哥为了省事节约时间就直接用上一篇中那个radio.html。如下:
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>测试单选</title>
- <style type="text/css">
- .button1 {
- background-color: #f44336;
- border: none;
- color: white;
- padding: 15px 32px;
- text-align: center;
- text-decoration: none;
- display: inline-block;
- font-size: 28px;
- margin: 20px 300px 50px 300px;
- text-decoration:none;
- color: white;
- }
- #myAnchor
- {
- text-decoration:none;
- color: white;
- }
- #hg
- {
- margin: 20px 300px 50px 300px;
- }
- </style>
- </head>
- <body>
- <button class="button1"><a id="myAnchor" href="https://www.cnblogs.com/du-hong/">北京-宏哥</a></button></br>
- <div id="hg">
- <div>
- <h3>复选框 checkbox</h3> 请选择喜欢的打野英雄:<br>
- <label><input name="checkbox1" type="checkbox" value="李白"/>李白 </label><br>
- <label><input name="checkbox2" type="checkbox" value="韩信"/>韩信 </label><br>
- <label><input name="checkbox3" type="checkbox" value="公孙离" checked="checked"/>公孙离 </label><br>
- <label><input name="checkbox4" type="checkbox" value="露娜"/>露娜 </label><br>
- </div>
- <div>
- <h3>单选框 radio</h3> 选择喜欢的打野英雄:<br>
- <label><input name="radio" type="radio" value="0" checked="checked"/>李白 </label><br>
- <label><input name="radio" type="radio" value="1"/>韩信 </label><br>
- <label><input name="radio" type="radio" value="2"/>露娜 </label><br>
- <label><input name="radio" type="radio" value="3"/>孙尚香 </label><br>
- </div>
- </div>
- </body>
- </html>
2.页面效果,如下图所示:
2.2多选遍历
和单选一样的遍历思路:
1.首先找到所有单选按钮的共同点。
2.使用共同点来定位单选按钮,将其放在list容器中。
3.利用for循环将其从容其中一一遍历出来。
2.3代码设计
根据上边的遍历思路进行代码设计如下图所示:
2.4参考代码
- package lessons;
- import java.util.concurrent.TimeUnit;
- import java.util.List;
- import org.junit.Assert;
- import org.junit.Test;
- import org.openqa.selenium.By;
- import org.openqa.selenium.WebDriver;
- import org.openqa.selenium.WebElement;
- import org.openqa.selenium.chrome.ChromeDriver;
- /**
- * @author 北京-宏哥
- *
- * 《手把手教你》系列技巧篇(三十五)-java+ selenium自动化测试-单选和多选按钮操作-下篇(详解教程)
- *
- * 2021年10月21日
- */
- public class TestRadio {
- @Test
- public void testRadio() throws InterruptedException {
- System.setProperty("webdriver.gecko.driver", ".\\Tools\\chromedriver.exe");
- WebDriver driver =null;
- driver =new ChromeDriver();
- driver.get("file:///C:/Users/DELL/Desktop/test/radio.html");
- driver.manage().window().maximize();
- driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
- //查找value属性值为“露娜”的复选框元素
- WebElement lounaCheckBox = driver.findElement(By.xpath("//input[@value='露娜']"));
- //如果此复选框没有被选中,则调用click方法单击选中此复选框
- if(!lounaCheckBox.isSelected()){
- lounaCheckBox.click();
- Thread.sleep(1000);
- }
- //断言此复选框是否被选中成功
- Assert.assertTrue(lounaCheckBox.isSelected());
- //如果此复选框处于选中,则再次调用click方法单击取消此复选框选中状态
- if(lounaCheckBox.isSelected()){
- lounaCheckBox.click();
- Thread.sleep(1000);
- }
- //断言此复选框处于非选中状态
- Assert.assertFalse(lounaCheckBox.isSelected());
- //查找所有name值为“checkbox”的复选框,并存放在list容器中
- List<WebElement> elements = driver.findElements(By.cssSelector("[type='checkbox']"));
- for (WebElement webElement :elements) {
- //点击选中
- webElement.click();
- }
- }
- }
2.5运行代码
1.运行代码,右键Run AS->Junit Test,控制台输出,如下图所示:
2.运行代码后电脑端的浏览器的动作,如下小视频所示:
3.JQueryUI网站
3.1被测网址
1.被测网址的地址:
https://jqueryui.com/resources/demos/checkboxradio/default.html
2.网页如下图:
3.2代码设计
根据demo中的遍历思路进行代码设计如下图所示:
3.3参考代码
- package lessons;
- import java.util.List;
- import java.util.concurrent.TimeUnit;
- import org.junit.Test;
- import org.openqa.selenium.By;
- import org.openqa.selenium.WebDriver;
- import org.openqa.selenium.WebElement;
- import org.openqa.selenium.chrome.ChromeDriver;
- /**
- * @author 北京-宏哥
- *
- * 《手把手教你》系列技巧篇(三十五)-java+ selenium自动化测试-单选和多选按钮操作-下篇(详解教程)
- *
- * 2021年10月21日
- */
- public class operatRadio {
- @Test
- public void testRadio() {
- System.setProperty("webdriver.gecko.driver", ".\\Tools\\chromedriver.exe");
- WebDriver driver =null;
- driver =new ChromeDriver();
- driver.get("https://jqueryui.com/resources/demos/checkboxradio/default.html");
- try{
- driver.manage().window().maximize();
- Thread.sleep(2000);
- driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
- List<WebElement> dx = driver.findElements(By.xpath("//*/div/fieldset[2]/label/span[1]")); //将所有多选按钮对象,存储到一个list容器中
- //使用for循环遍历list容器中的每一个多选按钮
- for ( WebElement d : dx ){
- //按遍历顺序依次点击按钮
- d.click();
- Thread.sleep(1000);
- }
- }catch (Exception e) {
- e.printStackTrace();
- }finally {
- // driver.quit();
- }
- }
- }
3.4运行代码
1.运行代码,右键Run AS->Junit Test,控制台输出,如下图所示:
2.运行代码后电脑端的浏览器的动作,如下小视频所示:
4.小结
这一篇前后宏哥介绍过,只不过单独在这里再说一次,一定要注意find_elements()和find_element()的区别。好了时间不早了,今天就分享到这里!!!
《手把手教你》系列技巧篇(三十五)-java+ selenium自动化测试-单选和多选按钮操作-下篇(详解教程)的更多相关文章
- 《手把手教你》系列技巧篇(三十三)-java+ selenium自动化测试-单选和多选按钮操作-上篇(详解教程)
1.简介 在实际自动化测试过程中,我们同样也避免不了会遇到单选和多选的测试,特别是调查问卷或者是答题系统中会经常碰到.因此宏哥在这里直接分享和介绍一下,希望小伙伴或者童鞋们在以后工作中遇到可以有所帮助 ...
- 《手把手教你》系列技巧篇(十)-java+ selenium自动化测试-元素定位大法之By class name(详细教程)
1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍By ClassName.看到ID,NAME这些方法的讲解,小伙伴们和童鞋们应该知道,要做好Web自动化测试,最好是需要了 ...
- 《手把手教你》系列技巧篇(三十四)-java+ selenium自动化测试-单选和多选按钮操作-中篇(详解教程)
1.简介 今天这一篇宏哥主要是讲解一下,如何使用list容器来遍历单选按钮.大致两部分内容:一部分是宏哥在本地弄的一个小demo,另一部分,宏哥是利用JQueryUI网站里的单选按钮进行实战. 2.d ...
- 《手把手教你》系列技巧篇(三十六)-java+ selenium自动化测试-单选和多选按钮操作-番外篇(详解教程)
1.简介 前边几篇文章是宏哥自己在本地弄了一个单选和多选的demo,然后又找了网上相关联的例子给小伙伴或童鞋们演示了一下如何自动化测试,这一篇宏哥在网上找了一个问卷调查,给小伙伴或童鞋们来演示一下.上 ...
- 《手把手教你》系列技巧篇(十七)-java+ selenium自动化测试-元素定位大法之By css上卷(详细教程)
1.简介 CSS定位方式和xpath定位方式基本相同,只是CSS定位表达式有其自己的格式.CSS定位方式拥有比xpath定位速度快,且比CSS稳定的特性.下面详细介绍CSS定位方式的使用方法.xpat ...
- 《手把手教你》系列技巧篇(十一)-java+ selenium自动化测试-元素定位大法之By tag name(详细教程)
1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍By ClassName.看到ID,NAME这些方法的讲解,小伙伴们和童鞋们应该知道,要做好Web自动化测试,最好是需要了 ...
- 《手把手教你》系列基础篇(七十五)-java+ selenium自动化测试-框架设计基础-TestNG实现DDT - 中篇(详解教程)
1.简介 上一篇中介绍了DataProvider如何传递参数,以及和一些其他方法结合传递参数,今天宏哥接着把剩下的一些常用的也做一下简单的介绍和分享. 2.项目实战1 @DataProvider + ...
- 《手把手教你》系列基础篇(八十六)-java+ selenium自动化测试-框架设计基础-Log4j实现日志输出(详解教程)
1.简介 自动化测试中如何输出日志文件.任何软件,都会涉及到日志输出.所以,在测试人员报bug,特别是崩溃的bug,一般都要提供软件产品的日志文件.开发通过看日志文件,知道这个崩溃产生的原因,至少知道 ...
- 《手把手教你》系列技巧篇(七十一)-java+ selenium自动化测试-自定义类解决元素同步问题(详解教程)
1.简介 前面宏哥介绍了几种关于时间等待的方法,也提到了,在实际自动化测试脚本开发过程,百分之90的报错是和元素因为时间不同步而发生报错.本文介绍如何新建一个自定义的类库来解决这个元素同步问题.这样, ...
随机推荐
- RabbitMQ-TTL-死信队列_DLX
1. 简介 死信队列,简称:DLX,Dead Letter Exchange(死信交换机),当消息成为Dead message后,可以被重新发送到另外一个交换机,这个交换机就是DLX. (一般会将DL ...
- webgl 图像处理 加速计算
webgl 图像处理 webgl 不仅仅可以用来进行图形可视化, 它还能进行图像处理 图像处理1---数据传输 webgl 进行图形处理的第一步: 传输数据到 GPU 下图为传输点数据到 GPU 并进 ...
- Javascript 判断 iframe 中的变量是否为对象
Javascript 判断 iframe 中的变量是否为对象 前言 公司之前的项目中,为了实现模块化,在 web 后端使用了 iframe 来组织框架和页面.由于当时没有很好地规划,iframe 子页 ...
- 238 day02_Collection、泛型
day02[Collection.泛型] 主要内容 Collection集合 迭代器 增强for 泛型 教学目标 [ ] 能够说出集合与数组的区别 [ ] 说出Collection集合的常用功能 [ ...
- Spring框架(第二天)
一. 注入 a) set i. JDK 1.八种基本类型(+包装类)+String <bean id="User" class="com.dsl.test2.Us ...
- django如何加载外部文件
django如何加载外部文件(环境:pycharm python2.7 django1.11) 有一份新的文件夹名为:py_aiplat_demo,内含有多个文件夹(SDK,demo,data). 1 ...
- 鸿蒙内核源码分析(信号消费篇) | 谁让CPU连续四次换栈运行 | 百篇博客分析OpenHarmony源码 | v49.04
百篇博客系列篇.本篇为: v49.xx 鸿蒙内核源码分析(信号消费篇) | 谁让CPU连续四次换栈运行 | 51.c.h .o 进程管理相关篇为: v02.xx 鸿蒙内核源码分析(进程管理篇) | 谁 ...
- disruptor笔记之五:事件消费实战
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- SVN--代码状态检查(图文并茂)
接下来,我们用客户端去检出代码,在桌面空白处单击右键,选择SVN检出(check out),在弹出的对话框中填写版本库URL(具体获取方式,上面讲上传项目到版本库的时候讲过),选择检出目录,点击确定. ...
- .Net Core利用反射动态加载类库的方法(解决类库不包含Nuget依赖包的问题)
在.Net Framework时代,生成类库只需将类库项目编译好,然后拷贝到其他项目,即可引用或动态加载,相对来说,比较简单.但到了.Net Core时代,动态加载第三方类库,则稍微麻烦一些. 一.类 ...