WebDriver使用Java获取标签标记值

时间:2018-01-10 09:35:12

标签: java selenium xpath selenium-webdriver

HTML code:

<label id="busquedaSimpleForm:j_idt36" class="ui-outputlabel ui-widget">Results found: 2</label>

从上面的标签中,我想获得Results found: 2值。

以下是我的Java源代码:

WebElement tf = driver.findElement(By.xpath("//label[@id='busquedaSimpleForm:j_idt36']"));
String fdl = tf.getAttribute("value");
System.out.println(fdl);

但是我的源代码输出变空了。

请帮我解决XPath上的问题。

4 个答案:

答案 0 :(得分:0)

由于该HTML行中没有属性value,您应该使用.getText(),因为您正在寻找具有该ID的元素(假设没有其他元素使用相同的ID)您可以只做findElement(By.id(...));

    WebElement tf = driver.findElement(By.id("busquedaSimpleForm:j_idt36"));
    String fdl = tf.getText();
    System.out.println(fdl);

答案 1 :(得分:0)

问题的解决方法是你必须得到innerHTML值。代码如下:

WebElement  elem = driver.findElement(By.id("busquedaSimpleForm:j_idt36"));
String str = elem.getAttribute("innerHTML");
System.out.println(str);

希望它可以帮到你!

答案 2 :(得分:0)

要为提供的Results found: 2检索文本HTML,您可以使用以下代码行:

System.out.println(driver.findElement(By.xpath("//label[@class='ui-outputlabel ui-widget' and contains(@id,'busquedaSimpleForm:')]")).getAttribute("innerHTML"));

答案 3 :(得分:-1)

您可以使用此xpath: - //label[text()='Results found: 2']

似乎你的id是动态的,所以不要使用它