从标签获取可见文本列表

时间:2019-02-21 09:10:57

标签: java selenium

我正处于硒的学习阶段,尝试从下面的html代码中获取值。有多个标签,我想要所有标签中的文本值 例如:

driver.findElement(By.xpath("//label/div/div/span(@class='inline-label')])).gettext(); //result = British Airways

以相同的方式,every标签具有文本值。有没有一种方法可以通过循环从所有不同的标签(所有xpath都相同)中获取文本值。 预期结果为 英国航空, 汉莎航空 捷特航空 xyz ...

预先感谢

enter image description here

2 个答案:

答案 0 :(得分:1)

您的xpath语法错误,应该为//label/div/div/span[contains(.,'xxxxx')]

如果要获取标签元素而不包含“ xxx”文本,请在下面使用xpath:

//label[./span[contains(.'xxxxx')]]

更新:

因为标签不可见,所以不能使用getText(),而应使用textContent属性。要获取所有标签,请使用findElements

List<WebElement> labels = driver.findElements(By.cssSelector("span.inline-label"));
labels.forEach(element -> System.out.println(element.getAttribute("textContent")));

答案 1 :(得分:1)

现在尝试,您应该获得元素列表及其文本。

List<WebElement> listData = driver.findElements(By.xpath("//span[@class='inline-label']"));
  for(int i=0;i<listData.size();j++) {

    System.out.print(listData.get(i).getText());

    }

让我知道您是否有任何问题。