在nightwatch中等待新URL加载的正确方法是什么?

时间:2016-04-04 15:35:37

标签: javascript nightwatch.js

我正在测试的页面有一个按钮,可以将您带到同一站点上的不同页面。点击该按钮后,我想在继续之前等待该页面加载。通常,我只是等待该页面上的某个元素加载,但由于我最近更新了nightwatch / selenium,所以waitForElementPresent()测试已停止工作。在调试问题的过程中,我认为等待加载新的URL是有意义的,但我没有看到一个守夜人的方式来做到这一点。我可以使用pause()后跟assert.urlContains()来硬编码等待,但是必须有更好的方法。有什么建议吗?

以前的工作:

this.waitForElementVisible(runCSS,3000)
    .click(runCSS)
    .waitForElementPresent(newPageElementCSS,5000)

但现在它在第二次等待时超时,即使我可以清楚地看到浏览器显示屏上的新页面(Windows 8.1上的Firefox 45.0.1)。

2 个答案:

答案 0 :(得分:0)

等待点击后将加载的页面所特有的某个(选择器)。它可以是任何东西,只要它不存在于当前页面上。

例如,

这将在页面上的任何位置等待<div name="Thingy">

client.waitForElementVisible('div[name="Thingy"]',3000)

答案 1 :(得分:-1)

我猜,在Nightwatch.js中,等待页面加载可以使用DOM的'body'元素来实现。假设,如果我们想等待页面1秒钟。我们将使用命令.waitForElementVisible('body', 1000)来实现它。第二个参数以毫秒为单位测量。