WebDriver API详解-操作页面元素
被测试网页的html代码
<html>
<body>
<input type="text" id="text" value="文本框默认内容">文本框</input>
<input type="button" id="button" value="改变文本框的文字" onclick=document.getElementById("text").value="改变了"></input>
</p>
<input id='inputBox' type="text" onclick="javascript:this.style.background='red'" value="请双击"></input>
</P>
<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='kiweifruit' value='mihoutao'>猕猴桃</option>
<option id='maybush' value='shanzha'>山楂</option>
<option id='litchi' value='lizhi'>荔枝</option>
</select>
</P>
<select name='fruit_multiple' size=6 multiple=true>
<option id='peach' value='taozi'>桃子</option>
<option id='watermelon ' value='xigua'>西瓜</option>
<option id='orange ' value='juzi'>橘子</option>
<option id='kiweifruit' value='mihoutao'>猕猴桃</option>
<option id='maybush' value='shanzha'>山楂</option>
<option id='litchi' value='lizhi'>荔枝</option>
</select>
</P>
<input type="radio" name="fruit_radio" value="berry"/>草莓</input>
<br/>
<input type="radio" name="fruit_radio" value="watermelon"/>西瓜</input>
<br/>
<input type="radio" name="fruit_radio" value="orange"/>橘子</input>
</P>
<input type="checkbox" name="fruit_checkbox" value="berry"/>草莓</input>
<br/>
<input type="checkbox" name="fruit_checkbox" value="watermelon"/>西瓜</input>
<br/>
<input type="checkbox" name="fruit_checkbox" value="orange"/>橘子</input>
</body>
</html>
1.在输入框中清除原有的文字内容
WebElement input = driver.findElement(By.id("text"));
// 清除文本框中的默认文字
input.clear();
2.在输入框中输入指定内容
String inputString = "测试工程师指定的输入内容";
WebElement input = driver.findElement(By.id("text"));
// 清除文本框中的原有内容,防止原有内容影响到测试结果,建议都清除掉
input.clear();
// 将自定义变量中的内容输入到文本框中
input.sendKeys(inputString);
3.单击按钮
WebElement button = driver.findElement(By.id("button"));
button.click();
4.双击某个元素
WebElement inputbox = driver.findElement(By.id("inputBox"));
// 声明Action对象
Actions builder = new Actions(driver);
// 使用doubleClick方法在输入框元素中进行鼠标的双击操作builder.doubleClick(inputbox).build().perform();
5.操作单选下拉列表
//getFirstSelectedOption().getText()方法表示获取当前被选中的下拉列表选项文本
Select dropList = new Select(driver.findElement(By.name("fruit")));
// selectByIndex方法表示选中下拉列表的第四个选项,索引从0开始
dropList.selectByIndex(3);
// selectByValue方法表示使用下拉列表选项的value属性值进行选中操作
dropList.selectByValue("shanzha");
// selectByVisibleText方法表示通过选项的文字来进行选中
ropList.selectByVisibleText("荔枝");
6.操作多选的选择列表
Select dropList = new Select(driver.findElement(By.name("fruit_multiple")));
// 使用选择项索引选择“猕猴桃”,索引从0开始
dropList.selectByIndex(3);
// 使用value属性值选择“山楂”属性
dropList.selectByValue("shanzha");
// 使用选项文字选择“荔枝”选项
dropList.deselectByVisibleText("荔枝");
// deselectAll方法表示取消所有选项的选中状态
dropList.deselectAll();
// 再次选中3个选项
dropList.selectByIndex(3);
dropList.selectByValue("shanzha");
dropList.selectByVisibleText("荔枝");
// deselectByIndex表示取消索引为3的选项的选中状态
ropList.deselectByIndex(3);
// deselectByValue方法表示取消value属性值为“shanzha”的选项的选中状态
dropList.deselectByValue("shanzha");
/ deselectByVisibleText方法表示通过选项文字取消“荔枝”选项的选中状态
dropList.deselectByVisibleText("荔枝");
7.操作单选框
// 查找属性为“orange”的单选按钮对象
WebElement radioOption = driver.findElement(By.xpath("//input[@name='fruit_radio'][@value='orange']"));
// 如果此按钮处于处于未被选中状态,则调用click方法选中此单选按钮
if (!radioOption.isSelected()) {
radioOption.click();
}
// 查找name属性值为“fruit_radio”的所有单选按钮对象,并存储到一个list容器中
List<WebElement> fruits = driver.findElements(By.name("fruit_radio"));
System.out.println(fruits.size());
// 使用for循环将list容器中的每个单选按钮进行遍历,查找value属性为“watermelon”的单选按钮,如果查找到此单选按钮未处于选中状态,则调用click方法进行单击操作
for (WebElement fruit : fruits) {
if (fruit.getAttribute("value").equals("watermelon")) {
if (!fruit.isSelected()) {
fruit.click();
System.out.println("我被选中了");
}
// 成功选中后,退出for循环
break;
}
}
8.操作复选框
// 查找value属性值为“orange”的复选框元素
WebElement orangeCheckbox = driver.findElement(By.xpath("//input[@name='fruit_checkbox'][@value='orange']"));
// 如果此复选框未被选中,则调用click方法单击选中此复选框
if (!orangeCheckbox.isSelected()) {
orangeCheckbox.click();
// 如果此复选框处于选中状态,则再次调用click方法单击取消复选框的选中状态
if (orangeCheckbox.isSelected())
orangeCheckbox.click();
// 查找所有name为“fruit_checkbox”的所有复选框,并存放在list容器内
List<WebElement> checkboxs = driver.findElements(By.name("fruit_checkbox"));
// 遍历list容器中的所有复选框元素,调用click方法单击所有复选框,让全部复选框处于选中状态
for (WebElement checkbox : checkboxs)
checkbox.click();
}
本文介绍如何使用 WebDriver API 对页面元素进行操作,包括清除输入框内容、输入文本、点击按钮、双击元素、操作下拉列表及单选和复选框等。
1050

被折叠的 条评论
为什么被折叠?



