Selenium webdriver 方法';getValue';获取webdriver中复选框/单选按钮/文本框的值

Selenium webdriver 方法';getValue';获取webdriver中复选框/单选按钮/文本框的值,selenium-webdriver,Selenium Webdriver,我正在java中实现一个方法“getValue”(需要的返回类型是String),以使用webdriver获取复选框/radioButton/文本框的值,如下所示: try { element=driver.findElement(By.xpath(target)); BoolResult = element.isSelected(); if(BoolResult==true) { result="

我正在java中实现一个方法“getValue”(需要的返回类型是String),以使用webdriver获取复选框/radioButton/文本框的值,如下所示:

             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未选中”,而我希望它转到下一个try块并执行“element.getAttribute(“value”)”


有人能帮忙吗?

您需要确定元素是复选框还是文本框。您应该使用更具体的XPath,以便在达到这一点之前知道您正在处理的是什么,但无论如何,这应该是可行的(尽管未经测试):


这很好用。我在这里发现的新点是通过使用'element.getAttribute(“type”)'确定元素是否为checkbox/radio/textbox。这使我的任务变得容易。。谢谢..太好了,很乐意帮忙:)
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;