在Selenium Webdriver(Java)上选择单选按钮

时间:2016-02-17 10:28:38

标签: java selenium selenium-webdriver

我想在这样的测试Web应用程序中选择一个单选按钮。在尝试和错误后,我无法找到如何做到这一点。

以下是网络应用的HTML。

    <ol class="plain block-listing solid choice-area">
    <li class="qti-choice qti-simpleChoice"data-serial="choice_simplechoice_56c2a110874b8101352859" data-identifier="choice_1">
    <div class="pseudo-label-box">
    <label class="real-label">
    <input type="radio" value="choice_1" name="response-interaction_choiceinteraction_56c2a1108692f930922645">
    <span class="icon-radio"></span>
    </label>
    <div class="label-box">
    <div class="label-content clear" contenteditable="false">
    <div class="qti-block">a. Terminal</div>
    </div>
    </div>
    </div>
    </li>
    <li class="qti-choice qti-simpleChoice" data-serial="choice_simplechoice_56c2a110878f8127430456" data-identifier="choice_2">
    <div class="pseudo-label-box">
    <label class="real-label">
    <input type="radio" value="choice_2" name="response-interaction_choiceinteraction_56c2a1108692f930922645">
    <span class="icon-radio"></span>
    </label>
    <div class="label-box">
    <div class="label-content clear" contenteditable="false">
    <div class="qti-block">b. Pelabuhan</div>
    </div>
    </div>
    </div>
    </li>

在我的selenium Webdriver上,这是我的代码:

    WebElement choiceOption = driver.findElement(By.xpath("//html/body/div[1]/div[1]/div/div/div/ol/li[1]/div/label/span"));
    choiceOption.click();

任何人都可以提供帮助? 提前谢谢。

5 个答案:

答案 0 :(得分:0)

您可以使用单选按钮的输入标签来选择它 试试这个 : WebElement choiceOption = driver.findElement(By.tagName(“input”));     choiceOption.click();

答案 1 :(得分:0)

您可以使用相对路径而不是使用绝对路径,并且有多种方法可以找到此webelement。 最简单的xpath之一是:     driver.findElement(By.xpath( “//输入[@值= 'choice_1']”))点击();

答案 2 :(得分:0)

是同一回答

driver.findElement(By.xpath("//label[@class='real-label']//*[@value='choice_2']")).click();
//The above code selects the option "Pelabuhan"

答案 3 :(得分:0)

你可以采取多种方式。

  1. 获取所有选项元素,循环浏览并单击具有所需值的那个元素。

    列表选项= driver.findElements(By.css(“ol.plain.block-listing.solid.choice-area input”) for(选项中的选项){          如果(option.value == “choice_2”){             if(!option.isChecked())option.click();             打破;       } }

    }

  2. 一种简单的方法是,您可以使用您想要点击的值构建动态x路径或css。例如,如果我们想要点击的是opt_2

    WebElement option = driver.findElement(By.css(input [value ='choice_2'])); if(!option.isChecked())option.click();

  3. 希望有所帮助!

答案 4 :(得分:0)

首先在方法中找到ol标签的Webelement,在ol中找到输入标签的List并为输入标签列表申请循环并与输入标签的值匹配点击

尝试以下代码:

`

myMethod(String inputTagValue){
WebElement olTag = driver.findElement(By.tagName("ol"));
List<WebElement> inputTagList = olTag.findElements(By.tagName("input"));
for (WebElement item: inputTagList ) {
                if(item.getAttribute("value").equals(inputTagValue)){
                    item.click();
                    break;
                }
    }
}

`