如何在javaselenium中获取更改后的文本


<table>
<tr>
<td>hi</td>
</tr>        
</table>
<button id="change" onclick="change()">change</button>
<script>
function change(){
$("table").empty();
var $tr = $("<tr></tr>");
$tr.append( $("<td>bye</td>") );
}
</script>
WebDriver driver=new ChromeDriver(chromeOptions);
WebElement change= driver.findElement(By.id("change"));
change.click();
WebElement td=driver.findElement(By.xpath("//*table/tr/td[1]"));
System.out.println(td.getText());

我期望";再见";,但它打印了";嗨";。

如何获取动态更改的文本?

使用WebDriverWait显式等待可以获得初始元素文本内容。然后等待该文本在单击后不再显示在该元素中,然后获取新元素文本内容。如下:

WebDriverWait wait = new WebDriverWait(webDriver, 20);
WebElement td =driver.findElement(By.xpath("//*table/tr/td[1]"));
String oldText = td.getText();
driver.findElement(By.id("change")).click();
wait.until(ExpectedConditions.not(ExpectedConditions.textToBePresentInElementLocated(By.xpath("//*table/tr/td[1]"), oldText)));
System.out.println(td.getText());

相关内容

  • 没有找到相关文章

最新更新