我正在实施一种方法' getValue' (返回类型需要是String)在java中使用webdriver获取checkbox / radioButton / textBox的值,如下所示:
try {
element=driver.findElement(By.xpath(target));
BoolResult = element.isSelected();
if(BoolResult==true) {
result="Radio Button/textbox Selected";
return result;
} else if(BoolResult==false){
result="Radio Button/textbox Not Selected";
return result;
} else {
}
} catch(Exception e2) {
}
try {
element=driver.findElement(By.xpath(target));
result = element.getAttribute("value");
log.info("The value of the target is : " + result);
} catch (Exception e) {
log.debug(e);
return result;
}
上面的单选按钮工作正常,但是对于TextBox,它会进入BoolResult == false状态并说“RadioButton / TextBox未被选中”,而我期待它进入接下来尝试阻止并执行' element.getAttribute(" value")'。
有人可以帮忙吗?
答案 0 :(得分:1)
您需要确定该元素是复选框还是文本框。您应该使用更具体的xpath,以便在达到这一点之前知道您正在处理的是什么,但无论如何,这应该有用(虽然它未经测试):
element=driver.findElement(By.xpath(target));
string type = element.getAttribute("type");
if (type.equals("checkbox") {
if(element.isSelected()) {
result="Radio Button/textbox Selected";
} else {
result="Radio Button/textbox Not Selected";
}
else if (type.equals("text")) {
result = element.getAttribute("value");
}
else {
log.debug("Unexpected input type");
}
return result;