WebDriver 等待 n 秒
WebDriver wait n seconds
我正在使用 Sauce Labs(使用 Selenium + Webdriver + Nodejs)编写一些功能测试。我的一个测试用例如下所示:
it('Should Not Have Any Errors', function(done) {
browser
.get(host + '/test.live.cgi?view=pixelTest')
.elementById('errorHolder')
.text()
.should.eventually.equal('[]')
.nodeify(done);
});
我该如何在加载页面和检查 errorHolder 元素的文本之间等待 10 秒?我一直在浏览 api https://github.com/admc/wd/blob/master/doc/api.md 但所有等待函数看起来都需要断言器函数来测试给定条件是否为真。我正在尝试使用 waitFor(opts, cb) -> cb(err)
方法,但我不确定如何将它与承诺联系起来。我可以这样做吗?
您可以使用:
.delay(10)
如果您真的必须使用延迟,请考虑将其定义为变量。您将更好地控制整个代码中的延迟,如果您需要重构,将更容易搜索。
编辑添加:
您还可以使用:
.then(function () {
browser.waitForElementById('errorHolder');
})
在webdriver提供的sleep函数中找到了答案。现在代码如下所示:
it('Should Not Have Any Errors', function(done) {
browser
.get(host + '/test.live.cgi?view=pixelTest')
.sleep(10000)
.elementById('errorHolder')
.text()
.should.eventually.equal('[]')
.nodeify(done);
});
await driver.sleep(n * 1000)
上面的代码对我有用。确保此代码在异步函数内。
我正在使用 Sauce Labs(使用 Selenium + Webdriver + Nodejs)编写一些功能测试。我的一个测试用例如下所示:
it('Should Not Have Any Errors', function(done) {
browser
.get(host + '/test.live.cgi?view=pixelTest')
.elementById('errorHolder')
.text()
.should.eventually.equal('[]')
.nodeify(done);
});
我该如何在加载页面和检查 errorHolder 元素的文本之间等待 10 秒?我一直在浏览 api https://github.com/admc/wd/blob/master/doc/api.md 但所有等待函数看起来都需要断言器函数来测试给定条件是否为真。我正在尝试使用 waitFor(opts, cb) -> cb(err)
方法,但我不确定如何将它与承诺联系起来。我可以这样做吗?
您可以使用:
.delay(10)
如果您真的必须使用延迟,请考虑将其定义为变量。您将更好地控制整个代码中的延迟,如果您需要重构,将更容易搜索。
编辑添加:
您还可以使用:
.then(function () {
browser.waitForElementById('errorHolder');
})
在webdriver提供的sleep函数中找到了答案。现在代码如下所示:
it('Should Not Have Any Errors', function(done) {
browser
.get(host + '/test.live.cgi?view=pixelTest')
.sleep(10000)
.elementById('errorHolder')
.text()
.should.eventually.equal('[]')
.nodeify(done);
});
await driver.sleep(n * 1000)
上面的代码对我有用。确保此代码在异步函数内。