方法'getValue'获取webdriver中checkbox / radioButton / textBox的值

时间:2013-12-19 14:05:11

标签: selenium-webdriver

我正在实施一种方法' 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")'。

有人可以帮忙吗?

1 个答案:

答案 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;