我遇到了一个表问题。假设我有一个包含列和行的表,我需要在
//get the value before
String randomStuff = page.locate(columnSelector).textContent() //This will give us for example Activate
// click on deactivate button
page.locate(deactivateButton).click()
// get the value after
String randomStuff = page.locate(columnSelector).textContent() //This will give us for example Deactivate
问题是由于元素无论如何都存在,脚本给予我随机激活或停用,所以它产生片状。
我试过了
page.waitForLoadState(LoadState.DOMCONTENTLOADED);
page.waitForLoadState(LoadState.NETWORKIDLE);
等待元素更改,但没有任何效果。
我甚至等待就绪状态=完成,但没有任何工作
String state = page.evaluate("document.readyState").toString();
outerloop:while(time<timeout) {
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
time+=200;
state = page.evaluate("document.readyState").toString();
if (state.equals("complete"))
break outerloop;
}
我想等待(动态地)直到元素改变状态。例如,当在表中搜索元素的存在或不存在时,表和列甚至在搜索之前就存在了,所以Playwright不会等待直到表完成加载搜索结果。
我Web应用程序中有很多这样的例子,但我无法找出Playwright提供的简单解决方案。
1条答案
按热度按时间laik7k3q1#
由于这是您的网站,您可以使用javascript设置一些隐藏的输入来指示表是否正在加载,并等待输入值成为您在playwright中所期望的值。