我需要从子标记(html标记:a)中获取文本,该子标记仅在输入的数据无效时显示。
如果获得的数据有效,则不会显示子标记(html标记:a)。
如何编写适合两种情况的xpath或如何从上述html标签获取文本
HTML代码如下:
<label id="pt" class="test">
some text is displayed
<a href=javascript:void(0);>some text</a>
Some text is displayed
</label>
//'a'标签仅在用户界面中的标签存在时显示
答案 0 :(得分:1)
您必须先检查a
是否存在,然后获取文本。
这是逻辑。
// get the list of links under label
List<WebElement> links = driver.findElements(By.xpath("//label[@id='pt']/a"));
// check if the link exists
if (links.size()>0) {
//print the link text
System.out.println(links.get(0).getText());
}
答案 1 :(得分:0)
您可以使用这种方式
try
{
//if element is present do the operations for that scenario here
WebElement alerttext = driver.findelement(by.xpath("//label[@id='pt']/a[1]"));
if(alerttext.isDisplayed()){
// Print the text - alerttext.getText();
}
catch(NoSuchElementFoundException ex){
//if element is not present do the operation for that scenario here
}
希望这可以解决您的问题。