我想在这样的测试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();
任何人都可以提供帮助? 提前谢谢。
答案 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)
你可以采取多种方式。
获取所有选项元素,循环浏览并单击具有所需值的那个元素。
列表选项= driver.findElements(By.css(“ol.plain.block-listing.solid.choice-area input”) for(选项中的选项){ 如果(option.value == “choice_2”){ if(!option.isChecked())option.click(); 打破; } }
}
一种简单的方法是,您可以使用您想要点击的值构建动态x路径或css。例如,如果我们想要点击的是opt_2
WebElement option = driver.findElement(By.css(input [value ='choice_2'])); if(!option.isChecked())option.click();
希望有所帮助!
答案 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;
}
}
}
`