如何从少数情况下显示的子标签获取文本

时间:2019-07-18 14:44:37

标签: java html selenium-webdriver xpath

我需要从子标记(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'标签仅在用户界面中的标签存在时显示

2 个答案:

答案 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
}

希望这可以解决您的问题。