seleniumu 3.0复选框操作(定位一组元素)
一般验证复选框是否可以选择点击常用到定位一组元素去循环遍历执行点击事件。但是有时候在不同的浏览器下可能会存在差异化的最终结果。
目前谷歌浏览器常常存在多次点击同一复选框,导致最终最后两项复选框均未被勾选。但是在火狐浏览器所有的复选框均被勾选上,火狐可以和IE一起,直接在添加IE TAB插件即可。
HTML代码如下:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>Checkbox</title>
<link
href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css"
rel="stylesheet" />
<script
src="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.js"></script>
</head>
<body>
<h3>checkbox</h3>
<div class="well">
<form class="form-horizontal">
<div class="control-group">
<label class="control-label" for="c1">checkbox1</label>
<div class="controls">
<input type="checkbox" id="c1" />
</div>
</div>
<div class="control-group">
<label class="control-label" for="c2">checkbox2</label>
<div class="controls">
<input type="checkbox" id="c2" />
</div>
</div>
<div class="control-group">
<label class="control-label" for="c3">checkbox3</label>
<div class="controls">
<input type="checkbox" id="c3" />
</div>
</div>
</form>
</div>
</body>
</html>
谷歌浏览器代码如下:
public static void main(String[] args) throws IOException, InterruptedException {
System.setProperty("webdriver.chrome.driver", "D:/chromedriver_win32/chromedriver.exe");
ChromeOptions Options = new ChromeOptions();
Options.addArguments("user-data-dir=C:\\Users\\happy\\AppData\\Local\\Google\\Chrome\\User Data");
WebDriver driver = new ChromeDriver(Options);
try {
File file = new File("C:/Users/happy/Desktop/NewFile.html");
// Java 流(Stream) 中的File类
String filepath = file.getAbsolutePath();
// 获取文件的绝对路径
driver.get(filepath);
// 在浏览器中打开相关文件NewFile.html
List<WebElement> inputs = driver.findElements(By.tagName("input"));
// 把所有的input标签放入List集合。然后用foreach 遍历元素。
for (WebElement checkbox : inputs) {
String type1 = new String(checkbox.getAttribute("type"));
if (type1.equals("checkbox")) {
System.out.println(checkbox.getAttribute("id"));
// 打印出执行点击操作的元素的id
checkbox.click();
}
}
} finally
{
Thread.sleep(10000);
driver.close();
driver.quit();
}
}

火狐浏览器
public static void main(String[] args) {
System.setProperty("webdriver.gecko.driver", "D:/firefox-47.0.1.win64.sdk/firefox-sdk/bin/geckodriver.exe");
WebDriver driver = new FirefoxDriver();
try {
// File file = new File("C:/Users/happy/Desktop/NewFile.html");
// // Java 流(Stream) 中的File类
// String filepath = file.getAbsolutePath();
// 获取文件的绝对路径
driver.get("file:///c:/Users/happy/Desktop/NewFile.html");
// 在浏览器中打开相关文件NewFile.html
List<WebElement> inputs = driver.findElements(By.tagName("input"));
// 把所有的input标签放入List集合。然后用foreach 遍历元素。
for (WebElement checkbox : inputs) {
String type1 = new String(checkbox.getAttribute("type"));
if (type1.equals("checkbox")) {
System.out.println(checkbox.getAttribute("id"));
// 打印出执行点击操作的元素的id
checkbox.click();
}
}
}
finally{
driver.close();
driver.quit();
}
}

driver.navigate().refresh();
这个方法用于刷新页面。
inputs.size()
size()方法可以计算获得元素的个数。这里获得的结果为3。3 减1 为2。
inputs.get().click();//集合的get()方法,可以直接对指定元素进行操作。获取集合中的指定元素。
get()指定得到元素组中的第几个元素,并对其时行click()操作。
seleniumu 3.0复选框操作(定位一组元素)的更多相关文章
- python之tkinter使用-复选框操作
# tkinter复选框操作 import tkinter as tk root = tk.Tk() root.title('问卷调查') root.geometry('220x80') # 设置窗口 ...
- C#:复选框操作类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...
- JS及Dom练习 | 模态对话框及复选框操作
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- DataGridView 复选框 操作大全
DataGridViewCheckBoxColumn dtCheck = new DataGridViewCheckBoxColumn(); dtCheck.DataPropertyName = &q ...
- python selenium单/复选框操作
一.单选:radio 1.首先是定位选择框的位置 2.定位id,点击图标就可以了,代码如下(获取url地址方法:把上面源码粘贴到文本保存为.html后缀后用浏览器打开,在浏览器url地址栏复制出地址就 ...
- jQuery——复选框操作
学习jQuer对表单.表格操作的过程中,按照书上的例子发现一个问题: <!DOCTYPE html> <html> <head> <title>复选框应 ...
- 【jQuery】对于复选框操作的attr与prop
这个是在jQuery1.6版本号之后出现的鬼东西.受影响的主要有下拉列表select与复选框checkbox.众所周知.在jQuery中能够用attr()取出节点的属性,然而对于checkbox却不是 ...
- selenium--表格和复选框的定位
表格定位 HTML代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...
- selenium之复选框操作
HTML源码: <!DOCTYPE html> <div lang="en"></div></div> <head> & ...
随机推荐
- OpenCV漫水填充算法示例代码
#include<cv.h> #include<highgui.h> int main(int argc, char** argv) { IplImage* img = cvL ...
- fork开源代码后如何基于某个tag建立自己的branch
应用场景: 在github上fork一个自己想看的开源项目,想基于某个tag来写一些测试demo,然后可以做到版本控制. 方法: //克隆 git clone xxxxx.git //查看tag gi ...
- Dubbo 项目与传统项目
1.什么是传统工程 单工程 MVC 架构 控制层通过调用服务层完成业务逻辑处理 业务层调用持久层进程数据操作 2.什么是分布式工程 将传统项目的单工程结构,拆分成多工程 一般会有这几个工程: 父工程: ...
- vue的nextTick的实现
vue的nextTick是用浏览器支持的方法模拟nodejs的process.nextTick 老版本的vue用如下方法来模拟 Promise.thenMutationObserver(Mutatio ...
- [hdu 6069]素数筛+区间质因数分解
给[L,R]区间的每一个数都质因数分解的复杂度可以达到(R-L)logR,真的涨姿势…… 另外,质因数分解有很重要的一点,就是只需要打sqrt(R)以内的素数表就够了……因为超过sqrt(R)的至多只 ...
- 封装安卓的okhttp
1.封装了get方法,handler更新主线程,回调的onsuccess,onfailure,onerror等方法 2.配置文件 api 'com.android.support:recyclervi ...
- P2765 魔术球问题(网络流24题)
题目描述 «问题描述: 假设有n根柱子,现要按下述规则在这n根柱子中依次放入编号为1,2,3,...的球. (1)每次只能在某根柱子的最上面放球. (2)在同一根柱子中,任何2个相邻球的编号之和为完全 ...
- 使用命令wsimport生成WebService客户端
使用命令wsimport生成WebService客户端 wsimpost命令有几个重要的参数: -keep:是否生成java源文件 -d:指定输出目录 -s:指定源代码输出目录 -p ...
- 51Nod 1212无向图最小生成树
prim #include<stdio.h> #include<string.h> #define inf 0x3f3f3f3f ][]; ],lowc[]; ],int n) ...
- BZOJ 2063: 我爸是李刚
2063: 我爸是李刚 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 155 Solved: 82[Submit][Status][Discuss] ...