我正处于硒的学习阶段,尝试从下面的html代码中获取值。有多个标签,我想要所有标签中的文本值 例如:
driver.findElement(By.xpath("//label/div/div/span(@class='inline-label')])).gettext(); //result = British Airways
以相同的方式,every标签具有文本值。有没有一种方法可以通过循环从所有不同的标签(所有xpath都相同)中获取文本值。 预期结果为 英国航空, 汉莎航空 捷特航空 xyz ...
预先感谢
答案 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());
}
让我知道您是否有任何问题。