selenium-WebDriver API(java)(三)
·
本篇知识点:
- 单击按钮
- 双击某个元素
- 操作单选下拉列表
- 检查单选列表的选项文集是否符合期望
- 操作多选的选项列表
- 操作单选框
- 操作复选框
单击按钮
被测试网页http://www.baidu.com
方法:页面元素.click()
// 单击按钮
@Test
public void clickButton() {
String url = "https://www.baidu.com";
driver.navigate().to(url);
WebElement input = driver.findElement(By.id("kw"));
input.sendKeys("selenium");
WebElement but = driver.findElement(By.id("su"));
but.click();
}双击某个元素
被测试网页http://www.baidu.com
方法:Actions builder = new Actions(driver);
builder.doubleClick(页面元素).build().perform();
// 双击某个元素
@Test
public void DoubleClick() {
String url = "https://www.baidu.com";
driver.navigate().to(url);
WebElement input = driver.findElement(By.id("kw"));
Actions builder = new Actions(driver);
builder.doubleClick(input).build().perform();
}操作单选下拉列表
被测试html代码
<html>
<body>
<select name='fruit' size =1>
<option id ='peach' value='taozi'>桃子</option>
<option id ='watermelon' value='xigua'>西瓜</option>
<option id ='orange' value='juzi'>橘子</option>
<option id ='kiwifruit' value='nihoutao'>猕猴桃</option>
<option id ='maybush' value='shanzha'>山楂</option>
<option id ='litchi' value='lizhi'>荔枝</option>
</select>
</body>
</html>具体操作代码:
// 操作单选下拉列表
@Test
public void operateDropList() {
String url = "file:///F:/workspace/WebDriver%20API/Single-option.html";
driver.navigate().to(url);
// 获取name属性为fruit的下拉列表元素
Select droplist = new Select(driver.findElement(By.name("fruit")));
// isMultiple表示此下拉列表是否允许多选。被测试的是一个单选下拉框,因此应该为false。
// 添加断言判断是否为false。
Assert.assertFalse(droplist.isMultiple());
// getFirstSelectedOption().getText())获取当前被选中的下拉列表选项文本
// 判断当前选中的选项文本是否为“桃子”
Assert.assertEquals("桃子", droplist.getFirstSelectedOption().getText());
// 选中下拉列表的第四个选项。(从0开始),即“猕猴桃”
droplist.selectByIndex(3);
Assert.assertEquals("猕猴桃", droplist.getFirstSelectedOption().getText());
// 选中下拉列表中value为“shanzha”的选项,即“山楂”
droplist.selectByValue("shanzha");
Assert.assertEquals("山楂", droplist.getFirstSelectedOption().getText());
// 选中下拉列表中,选项文字为“荔枝”的选项,即“荔枝”
droplist.selectByVisibleText("荔枝");
Assert.assertEquals("荔枝", droplist.getFirstSelectedOption().getText());
}检查单选列表的选项文集是否符合期望
被测试html代码跟上面的一样。
// 检查单选列表的选项文集是否符合期望
@Test
public void checkSelectText() {
String url = "file:///F:/workspace/WebDriver%20API/Single-option.html";
driver.navigate().to(url);
// 获取name属性为fruit的下拉列表元素
Select droplist = new Select(driver.findElement(By.name("fruit")));
// 把预期的选项文字保存在list对象中
List<String> expect_option = Arrays.asList((new String[] { "桃子", "西瓜", "橘子", "猕猴桃", "山楂", "荔枝" }));
// 把下拉列表中的所有选项文字保存在list中
List<String> actural_option = new ArrayList<String>();
// getOptions()获取所有的选项
for (WebElement option : droplist.getOptions()) {
actural_option.add(option.getText());
}
//断言期望对象和实际对象的数组值是否一致。
Assert.assertEquals(expect_option, actural_option);
}操作多选的选项列表
被测试html代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<select name='fruit' size =6 multiple=true>
<option id ='peach' value='taozi'>桃子</option>
<option id ='watermelon' value='xigua'>西瓜</option>
<option id ='orange' value='juzi'>橘子</option>
<option id ='kiwifruit' value='nihoutao'>猕猴桃</option>
<option id ='maybush' value='shanzha'>山楂</option>
<option id ='litchi' value='lizhi'>荔枝</option>
</select>
</body>
</html>具体操作代码:
// 操作多选的选项列表
@Test
public void operateMultipleOptionDropList() {
String url = "file:///F:/workspace/WebDriver%20API/multiple-option.html";//html的保存路径
driver.navigate().to(url);
// 获取name属性为fruit的下拉列表元素
Select droplist = new Select(driver.findElement(By.name("fruit")));
// 判断页面的下拉列表是否支持多选。
Assert.assertTrue(droplist.isMultiple());
//使用选择项索引选择“猕猴桃”选择。
droplist.selectByIndex(3);
//使用value属性值选择“山楂”选择。
droplist.selectByValue("shanzha");
//使用选择文字选择“荔枝”选择。
droplist.selectByVisibleText("荔枝");
//取消所有选项的选中状态
droplist.deselectAll();
//再次选中3个选项
droplist.selectByIndex(3);
droplist.selectByValue("shanzha");
droplist.selectByVisibleText("荔枝");
//取消索引为3的选项的选中状态
droplist.deselectByIndex(3);
//取消value属性值为“shanzha”的选项的选中状态
droplist.deselectByValue("shanzha");
//通过选项文字取消“荔枝”选项的选中状态
droplist.deselectByVisibleText("荔枝");
}操作单选框
被测试的HTML页面代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form>
<input type="radio"name="fruit" value="berry"/>草莓</input>
<input type="radio"name="fruit" value="watermelon"/>西瓜</input>
<input type="radio"name="fruit" value="orange"/>橙子</input>
</form>
</body>
</html>具体操作:
// 操作单选框
@Test(enabled = false)
public void operateRadio() {
String url = "file:///F:/workspace/WebDriver%20API/Radio.html";//html的保存路径
driver.navigate().to(url);
// 通过xpath方式查找属性为‘berry’的单选按钮对象
WebElement radioOption = driver.findElement(By.xpath("//input[@value='berry']"));
// 如果没有选中,则用click()方法选中
if (!radioOption.isSelected()) {
radioOption.click();
}
// 断言判断是否已经被选中
Assert.assertTrue(radioOption.isSelected());
// 把所有name为fruit的单选按钮存在list中
List<WebElement> fruits = driver.findElements(By.name("fruit"));
for (WebElement fruit : fruits) {
if (fruit.getAttribute("value").equals("watermelon")) {
if (!fruit.isSelected()) {
fruit.click();
Assert.assertTrue(fruit.isSelected());
break;
}
}
}
}操作复选框
被测试html网页代码;
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form>
<input type="checkbox" name="fruit" value="berry" />草莓
<br />
<input type="checkbox" name="fruit" value="berry" />西瓜
<br />
<input type="checkbox" name="fruit" value="berry" />橘子
</form>
</body>
</html>具体代码:
//操作复选框
@Test
public void operateCheckBox(){
String url = "file:///F:/workspace/WebDriver%20API/Checkbox.html";//html的保存路径
driver.get(url);
//查找出value值为orange的复选框元素
WebElement orangeCheckbox=driver.findElement(By.xpath("//input{@value='orange'}"));
if (!orangeCheckbox.isSelected()) {
//如果这个复选框没有被选中,则调用click方法选中
orangeCheckbox.click();
//断言这个复选框被选中
Assert.assertTrue(orangeCheckbox.isSelected());
}
//如果复选框处于选中状态,则调用click方法取消选中
if (orangeCheckbox.isSelected()) {
orangeCheckbox.click();
//断言这个复选框没有被选中
Assert.assertFalse(orangeCheckbox.isSelected());
}
//查找所有name属性是fruit的复选框,并存在在List中
List<WebElement> fruits=driver.findElements(By.name("fruit"));
//遍历list容器中的所有复选框,调用click方法单击所有复选框。
for (WebElement checkbox : fruits) {
checkbox.click();
}
}更多推荐
所有评论(0)