0

我正在使用 selenium-server-3.7.1 和 Firefox 57

如何等待页面完全加载

我尝试了以下 return ((JavascriptExecutor) driver).executeScript("return document.readyState").equals("complete");

但它不工作

基本上上述命令无法识别以下操作 [testng] 1535139249496 addons.productaddons INFO 发送请求到:https ://aus5.mozilla.org/update/3/GMP/57.0.4/20180103231032/Linux_x86_64-gcc3/en-US /release/Linux%204.1.12-112.14.10.el7uek.x86_64%20(GTK%203.22.10%2Clibpulse%2010.0.0)/default/default/update.xml [testng] 1535139249669 addons.productaddons INFO 完成下载文件 [testng] 1535139249818 addons.productaddons INFO 下载XHR文件下载。status=200 [testng] 1535139249821 addons.productaddons INFO 下载的文件将保存到 /tmp/tmpaddon-c61a84 [testng] 1535139738375 addons.manager INFO 跳过后台更新检查 [testng] 1535139978387 DeferredSave.extensions.json DEBUG 保存更改 [testng] 1535139978387 DeferredSave.extensions.json 调试开始计时器 [testng] 1535139978409 DeferredSave.extensions.json 调试开始写入 [testng] 1535139978412 DeferredSave.extensions.json 调试写入成功

我给了 30 秒的硬睡眠来完成这些操作有没有办法等待这些操作完成?

4

2 回答 2

0

在自动化脚本中,需要等待多个实例。不能使用 Thread.Sleep(); 每次。页面需要等待 JQuery、JavaScript、Angular 加载。并且不能仅由我们处理document.readyState如果应用程序建立在我们必须等待所有物质。因此,我们可以创建单个方法来等待页面加载,并且该方法可以多次调用。

这是相同的博客链接,它将帮助您理解它。点击这里

您可以包含构建应用程序的那些方法。

如果博客链接可能丢失,可以使用示例 Github 项目。点击这里

于 2018-08-25T06:14:25.000 回答
0
Wait wait = new FluentWait(driver)
.withTimeout(30000, TimeUnit.SECONDS) .pollingEvery(5, TimeUnit.SECONDS) .ignoring(NoSuchElementException.class);

希望对你有帮助

于 2018-08-27T08:25:39.900 回答