如何让selenium(Chrome)网络驱动程序等待网络中没有挂起的请求?(使用JAVA)



我尝试在性能日志中迭代,直到出现包含"WillBeSent"(挂起(状态的响应方法。。。但是性能日志正在被自动清除,并且无法检索到具有挂起状态的请求。

这是我尝试过的代码:

do{
allmethod="";
sleep(1000);
logs = driver.manage().logs().get("performance");
for (Iterator<LogEntry> it = logs.iterator(); it.hasNext();) {
LogEntry entry = it.next();
JSONObject json = new JSONObject(entry.getMessage());
JSONObject message = json.getJSONObject("message");
String method = message.getString("method");
allmethod = allmethod + " " + method;
System.out.println(allmethod);
}
}while(allmethod.contains("WillBeSent")==Boolean.TRUE);

有没有其他方法可以使用selenium在Chrome的"网络"选项卡中捕获任何挂起的请求?

希望这段代码能解决你的问题,这个方法会检查所有DOM元素是否处于就绪状态。

私有无效等待UntilJSReady(({

try {
ExpectedCondition<Boolean> jsLoad = driver -> ((JavascriptExecutor) this.driver)
.executeScript("return document.readyState").toString().equals("complete");
boolean jsReady = jsExec.executeScript("return document.readyState").toString().equals("complete");
if (!jsReady) {
jsWait.until(jsLoad);
}
} catch (WebDriverException ignored) {
}

}

相关内容

  • 没有找到相关文章

最新更新