《手把手教你》系列技巧篇(三十五)-java+|《手把手教你》系列技巧篇(三十五)-java+ selenium自动化测试-单选和多选按钮操作-下篇(详解教程)
1.简介
今天这一篇宏哥主要是讲解一下,如何使用list容器来遍历多选按钮。大致两部分内容:一部分是宏哥在本地弄的一个小demo,另一部分,宏哥是利用JQueryUI网站里的多选按钮进行实战。
2.demo准备
2.1demo页面的HTML代码
1.这里宏哥为了省事节约时间就直接用上一篇中那个radio.html。如下:
测试单选 - 锐客网 .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; } 复选框 checkbox
请选择喜欢的打野英雄:
单选框 radio
选择喜欢的打野英雄:
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='https://www.it610.com/article/露娜']")); //如果此复选框没有被选中,则调用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容器中 Listelements = 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中的遍历思路进行代码设计如下图所示:
【《手把手教你》系列技巧篇(三十五)-java+|《手把手教你》系列技巧篇(三十五)-java+ selenium自动化测试-单选和多选按钮操作-下篇(详解教程)】
文章图片
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); Listdx = 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()的区别。好了时间不早了,今天就分享到这里!!!
推荐阅读
- 慢慢的美丽
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 《跨界歌手》:亲情永远比爱情更有泪点
- 诗歌:|诗歌: 《让我们举起世界杯,干了!》
- 期刊|期刊 | 国内核心期刊之(北大核心)
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- 人间词话的智慧
- 《一代诗人》37期,生活,江南j,拨动心潭的一泓秋水
- 广角叙述|广角叙述 展众生群像——试析鲁迅《示众》的展示艺术
- 书评——《小行星》