等待,直到元素在使用Java的Playwright中更改状态

am46iovg  于 2022-12-02  发布在  Java
关注(0)|答案(1)|浏览(197)

我遇到了一个表问题。假设我有一个包含列和行的表,我需要在

//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提供的简单解决方案。

laik7k3q

laik7k3q1#

由于这是您的网站,您可以使用javascript设置一些隐藏的输入来指示表是否正在加载,并等待输入值成为您在playwright中所期望的值。

相关问题