《手把手教你》系列技巧篇(三十五)-java+ selenium自动化测试-单选和多选按钮操作-下篇(详解教程)

简介: 【4月更文挑战第27天】本文介绍了使用Java+Selenium进行Web自动化测试时,如何遍历和操作多选按钮的方法。文章分为两个部分,首先是一个本地HTML页面的示例,展示了多选按钮的HTML代码和页面效果,并详细解释了遍历多选按钮的思路:找到所有多选按钮的共同点,通过定位这些元素并放入list容器中,然后使用for循环遍历并操作。第二部分介绍了在JQueryUI网站上的实战,给出了被测网址,展示了代码设计,同样使用了findElements()方法获取所有多选按钮并存储到list中,然后遍历并进行点击操作。最后,文章对整个过程进行了小结,并推荐了作者的其他自动化测试教程资源。

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()的区别。好了时间不早了,今天就分享到这里!!!


每天学习一点,今后必成大神-

往期推荐(由于跳转参数丢失了,所有建议选中要访问的右键,在新标签页中打开链接即可访问):


Appium自动化系列,耗时80天打造的从搭建环境到实际应用精品教程测试

Python接口自动化测试教程,熬夜87天整理出这一份上万字的超全学习指南

Python+Selenium自动化系列,通宵700天从无到有搭建一个自动化测试框架

Java+Selenium自动化系列,仿照Python趁热打铁呕心沥血317天搭建价值好几K的自动化测试框架

Jmeter工具从基础->进阶->高级,费时2年多整理出这一份全网超详细的入门到精通教程

Fiddler工具从基础->进阶->高级,费时100多天吐血整理出这一份全网超详细的入门到精通教程

Pycharm工具基础使用教程

相关文章
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
1047 5
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
564 31
Selenium IDE:Web自动化测试的得力助手
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
Web App开发 IDE 测试技术
自动化测试的利器:Selenium 框架深度解析
【10月更文挑战第2天】在软件开发的海洋中,自动化测试犹如一艘救生艇,让质量保证的过程更加高效与精准。本文将深入探索Selenium这一强大的自动化测试框架,从其架构到实际应用,带领读者领略自动化测试的魅力和力量。通过直观的示例和清晰的步骤,我们将一起学习如何利用Selenium来提升软件测试的效率和覆盖率。
|
JavaScript 前端开发 测试技术
精通Selenium:从基础到高级的网页自动化测试策略
【10月更文挑战第6天】随着Web应用变得越来越复杂,手动进行功能和兼容性测试变得既耗时又容易出错。自动化测试因此成为了现代软件开发不可或缺的一部分。Selenium是一个强大的工具集,它支持多种编程语言(包括Python),允许开发者编写脚本来模拟用户与Web页面的交互。本文将带领读者从Selenium的基础知识出发,逐步深入到高级的应用场景,通过丰富的代码示例来展示如何高效地进行网页自动化测试。
2444 5
|
Web App开发 缓存 Linux
高效Selenium测试技巧:轻松控制已开启的浏览器
【10月更文挑战第13天】在进行Selenium测试时,通常会启动新浏览器实例,但有时需要控制已开启的浏览器,以节省时间并更真实地模拟用户行为。这可通过设置Chrome为可远程控制并使用`Remote WebDriver`连接实现。需在启动Chrome时添加`--remote-debugging-port`参数,并通过Python脚本中的`webdriver.Remote`连接至指定端口。此外,还可利用会话ID(Session ID)重新连接浏览器,提高测试灵活性。需要注意浏览器版本兼容性及元素定位稳定性等问题,确保测试准确性和一致性。
1536 1
|
Web App开发 JavaScript Java
自动化测试的利剑:Selenium WebDriver入门与实践
【9月更文挑战第21天】在软件开发的海洋中,自动化测试犹如一艘船,帮助开发者们快速航行至质量保证的彼岸。本文将作为你的罗盘,指引你了解和掌握Selenium WebDriver这一强大的自动化测试工具。通过深入浅出的方式,我们将探索Selenium WebDriver的基本概念、安装过程以及编写简单测试脚本的方法。无论你是刚接触自动化测试的新手,还是希望提升测试技能的开发者,这篇文章都将为你提供有价值的指导。
|
Web App开发 Java 测试技术
自动化测试的利器:Selenium WebDriver入门与实践
【9月更文挑战第8天】在软件开发的海洋中,测试是确保我们不会溺水的那根救生索。Selenium WebDriver,作为自动化测试的明星工具,让这根救生索更加结实可靠。本文将带你快速上手Selenium WebDriver,从基础设置到实际操作,再到实战演练,让你的开发之旅更加平稳顺畅。
|
测试技术 数据安全/隐私保护 开发者
自动化测试的奥秘:如何用Selenium和Python提升软件质量
【9月更文挑战第35天】在软件开发的海洋中,自动化测试是那艘能引领我们穿越波涛的帆船。本文将揭开自动化测试的神秘面纱,以Selenium和Python为工具,展示如何构建一个简单而强大的自动化测试框架。我们将从基础出发,逐步深入到高级应用,让读者能够理解并实现自动化测试脚本,从而提升软件的质量与可靠性。
|
Web App开发 测试技术 持续交付
自动化测试的利器:Selenium与Python的完美结合
【9月更文挑战第21天】在软件开发的世界里,测试是确保产品质量的关键步骤。随着敏捷开发和持续集成的流行,自动化测试工具变得尤为重要。本文将介绍如何使用Selenium和Python进行高效的自动化测试,不仅提供代码示例,还深入探讨如何设计测试用例、选择正确的测试框架、以及如何整合到CI/CD流程中。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和实用的技巧。
409 3