网页上有一组单选按钮。每个单选按钮都有一个帮助图标,单击该图标时会获得一个帮助弹出窗口。 我正在尝试使用selenium webdriver获取该帮助文本。 所以我想得到文本" HELP TEXT 2"。 请帮助构建xpath或如何使用CSS找到帮助文本。如果有一个比Xpath或CSS更简单的方法,请告诉我。 我正在使用firefox和java绑定来获取selenium。
<div class="a">
<div class="b" tabindex="0">
<input tabIndex="0" id="1">
<div class="c">
<label for="1"> apple </label>
<div class="d">
<span>Help</span>
</div>
<div class="f" role = "doc">
<div class="g">
<div class="h">
<button type="button" class="close"></button>
</div>
<div class="i" tabindex="0">
HELP TEXT 1
</div>
</div>
</div>
</div>
</div>
</div>
<div class="a">
<div class="b" tabindex="0">
<input tabIndex="0" id="2">
<div class="c">
<label for="2"> orange </label>
<div class="d">
<span>Help</span>
</div>
<div class="f" role = "doc">
<div class="g">
<div class="h">
<button type="button" class="close"></button>
</div>
<div class="i" tabindex="0">
HELP TEXT 2
</div>
</div>
</div>
</div>
</div>
</div>
答案 0 :(得分:1)
我怀疑你的要求不是找到&#34;帮助文本2&#34;这是微不足道的,而是找到与标签为&#34; close&#34;相关联的帮助文本。如果我猜错了,请在发布下一个问题时忽略此答案并注意。
如果我是对的,那就是//div[button[@class='close']]/following-sibling::div[1]
。
答案 1 :(得分:0)
您的html没有提取单个单选按钮的ID,因此我建议您使用css选择器".i"
获取所有帮助文本,这将为您提供帮助文本列表["HELP TEXT 1", "HELP TEXT 2"]
在你的测试用例中,你可以在同一时间测试所有内容。
答案 2 :(得分:0)
您可以使用findElements()获取所有帮助文本。 像,
List<WebElement> list = driver.findElements(By.xpath("//div[@class='i']"));
for(int i = 0; i < list.size(); i++){
String text = list.get(i).getText();
s.o.p(text);
}
答案 3 :(得分:0)
您可以尝试使用getAttribute("textContent")
直接获取帮助文字,而不必悬停。
根据您在上面添加的xpath,您可以使用以下代码获取第一个帮助文字:
String help_text1 = driver.findElement(By.xpath("//label[contains(text(),'apple')]/following-sibling::div[@role='doc']//div[@class='i']")).getAttribute("textContent");
System.out.println(help_text1);