Java+Selenium3方法篇24-单选和多选按钮操作

本篇介绍 webdriver处理前端单选按钮的操作。单选按钮一般叫raido button,就像我们在电子版的单选答题过程一样,单选只能点击一次,如果点击其他的单选,之前单选被选中状态就会变成未选中。单选按钮的点击,一样是 使用click方法。下面我们介绍百度新闻首页中有两个单选按钮,我们根据for选好,依次点击第一个,然后点击第二个,由于第一个是默认选中状态,所以 看不到第一个点击的效果。

相关脚本代码如下。

  1. package lessons;
  2. import java.util.ArrayList;
  3. import java.util.concurrent.TimeUnit;
  4. import org.openqa.selenium.By;
  5. import org.openqa.selenium.WebDriver;
  6. import org.openqa.selenium.WebElement;
  7. import org.openqa.selenium.chrome.ChromeDriver;
  8. public class ElementOpration {
  9. public static void main(String[] args) throws Exception {
  10. System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");
  11. WebDriver driver = new ChromeDriver();
  12. driver.manage().window().maximize();
  13. driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
  14. driver.get("http://news.baidu.com");
  15. Thread.sleep(1000);
  16. // 把单选按钮放在一个list里面
  17. ArrayList<WebElement> search_type = (ArrayList<WebElement>) driver.findElements(By.xpath("//*/p[@class='search-radios']/input"));
  18. for(WebElement ele : search_type){
  19. ele.click();
  20. Thread.sleep(1000);
  21. }
  22. }
  23. }

上面介绍了单选按钮是采用click方法,其实多选按钮一样是采用click,我们这里打开一个问卷调查,利用for循环去一次点击每个题目的单选和多选按钮。自己运行下观察效果。

  1. package lessons;
  2. import java.util.ArrayList;
  3. import java.util.concurrent.TimeUnit;
  4. import org.openqa.selenium.By;
  5. import org.openqa.selenium.WebDriver;
  6. import org.openqa.selenium.WebElement;
  7. import org.openqa.selenium.chrome.ChromeDriver;
  8. public class ElementOpration {
  9. public static void main(String[] args) throws Exception {
  10. System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");
  11. WebDriver driver = new ChromeDriver();
  12. driver.manage().window().maximize();
  13. driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
  14. driver.get("https://www.sojump.com/m/2792226.aspx/");
  15. Thread.sleep(1000);
  16. // 把单选按钮放在一个list里面
  17. ArrayList<WebElement> answer_options = (ArrayList<WebElement>) driver.findElements(By.xpath("//*/div[@id='divQuestion']/fieldset/div/div/div/span/input/../a"));
  18. for(WebElement ele : answer_options){
  19. ele.click();
  20. Thread.sleep(1000);
  21. }
  22. }
  23. }

上面介绍了一组元素采用for循环遍历操作的方法,如果是单个单选按钮或者单个多选按钮,需要用到根据单选按钮旁边的文字去定位该单选按钮,所以这里需要 用到Xpath的相对路径写法。其实上面第二个例子input/../a就是采取了相对路径写法,才能看到点击选中的效果。

Java+Selenium3方法篇24-单选和多选按钮操作的更多相关文章

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

    1.简介 在实际自动化测试过程中,我们同样也避免不了会遇到单选和多选的测试,特别是调查问卷或者是答题系统中会经常碰到.因此宏哥在这里直接分享和介绍一下,希望小伙伴或者童鞋们在以后工作中遇到可以有所帮助 ...

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

    1.简介 今天这一篇宏哥主要是讲解一下,如何使用list容器来遍历多选按钮.大致两部分内容:一部分是宏哥在本地弄的一个小demo,另一部分,宏哥是利用JQueryUI网站里的多选按钮进行实战. 2.d ...

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

    1.简介 今天这一篇宏哥主要是讲解一下,如何使用list容器来遍历单选按钮.大致两部分内容:一部分是宏哥在本地弄的一个小demo,另一部分,宏哥是利用JQueryUI网站里的单选按钮进行实战. 2.d ...

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

    1.简介 前边几篇文章是宏哥自己在本地弄了一个单选和多选的demo,然后又找了网上相关联的例子给小伙伴或童鞋们演示了一下如何自动化测试,这一篇宏哥在网上找了一个问卷调查,给小伙伴或童鞋们来演示一下.上 ...

  5. Java+Selenium3方法篇21-webdriver处理浏览器多窗口切换

    经过前面两篇文章的铺垫,我们这篇介绍,webdriver如何处理,一个浏览器上多个窗口之间切换的问题.我们先脑补这样一个测试场景,你在页面A点击一个连接,会在新的tab窗口打开页面B,这个时候,你在页 ...

  6. OC实现单选和多选按钮

    本代码库暂时有OC封装,改天有空在补一个Swift封装的,主要是因为swift不是那么熟,怕出错,半天找不到问题多尴尬呀! 先附上demo下载地址CSDN:http://download.csdn.n ...

  7. js控制多层单选,多选按钮,做隐藏操作

    项目中遇到多层级单选,多选按钮的置灰/隐藏操作.特意写了一个公用组件: //置灰方式 //controllerArr数组添加如下数据: //{ctrlName:"gds_anquanyuan ...

  8. 『心善渊』Selenium3.0基础 — 14、Selenium对单选和多选按钮的操作

    目录 1.页面中的单选按钮和多选按钮 2.判断按钮是否选中is_selected() 3.单选按钮的操作 4.多选按钮的操作 5.选择部分多选按钮的操作 1.页面中的单选按钮和多选按钮 页面中的单选按 ...

  9. 纯css修改单选、复选按钮样式

    只支持IE9及以上 html <label><input class="radio" type="radio" name="radi ...

随机推荐

  1. C语言学习之第一个程序

    #include<stdio.h> int main() { printf("This is my first program!\n"); ; } 基本格式大致如下: ...

  2. 将CSV文件中的数据导入到SQL Server 数据库中

    导入数据时,需要注意 CSV 文件中的数据是否包含逗号以及双引号,存在时,导入会失败 选择数据库 -> 右键 -> 任务 -> 导入数据 ,然后根据弹出的导入导出向导(如下图)中的提 ...

  3. raw_input与input的区别

    1. 版本差异 raw_input——>python2版本 input——>python3版本 2. 输入格式差异 就是raw_input()随便输都是字符串,而input()必须按照Py ...

  4. 查询python的安装路径

    参考链接: https://blog.csdn.net/orangleliu/article/details/44907221 (tf_14) novak@novak-ZBook15G2:~$ pyt ...

  5. Git/Github Learning

    通过网上查找资料,我了解到Git/Github是一款免费.开源的分布式版本控制系统,它可以敏捷高效地处理任何或小或大的项目.同时,它是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的 ...

  6. Gecko Robotics, Inc. SE II Test OA -- 菜到扣脚

    There are three problems in hackrank. two sum http request to get title binary search (find first la ...

  7. python入门23 pymssql模块(python连接sql server增删改数据 )

    增删改数据必须connect.commit()才会生效 回滚函数 connect.rollback() 连接数据库 ''' dinghanhua sql server增删改 ''' import py ...

  8. Unity3d实现的十字路口的模拟(三)

    http://blog.csdn.net/nijiayy/article/details/45366427

  9. img的空白内容如何处理

    给img加一个 vertical-align: bottom;

  10. 重写viewWillAppear 和 viewWillDisAppear时[super viewWillAppear] 和 [super viewWillDisappear]的调用位置

    参考网址:https://stackoverflow.com/questions/3906704/when-should-i-call-super 在写代码的过程中如果重写了viewWillAppea ...