在Selenium中使用Java从html标记接收数据

时间:2016-10-20 16:24:30

标签: java selenium selenium-webdriver

我有以下html标记,我希望从"name":"test_1476979972086"代码接收Java Selenium

我怎么能做到这一点?

我已尝试getTextgetAttribute功能,但没有任何成功。

<a data-ng-href="#/devices" 
    target="_blank" 
    class="ng-binding" 
    href="#/devices">  
{"name":"test_1476979972086"}    
</a>

getText()始终是emtpy。 xpath是唯一的。 newDevice.created在页面上是唯一的。

final By successMessageBy = By.xpath("//p[@data-ng-show='newDevice.created']/a");

final WebElement successMessage = wait.until(ExpectedConditions.presenceOfElementLocated(successMessageBy));

final String msg = successMessage.getText();

2 个答案:

答案 0 :(得分:1)

实际上WebElement#getText()仅返回可见文字。可能有元素存在,但文本稍后可见。

因此,如果WebElement#getText()无效,请尝试使用getAttribute("textContent"),如下所示: -

successMessage.getAttribute("textContent");

答案 1 :(得分:0)

乍一看,下面应该有效。事实上你所尝试的东西不起作用,这让我相信你没有选择正确的元素。因为我不知道你的其他html,这可能不是唯一的。你将不得不玩它,或分享周围的HTML

String json = driver.findElement(By.cssSelector("a[href$='/devices']")).getText()