【发布时间】:2020-01-15 11:29:58
【问题描述】:
所以我的想法是创建一个函数来尝试在 x 秒内找到一个元素。如果元素没有出现(能够在元素上写)和/或无法向元素发送任何键,则等待。如果它通过了给定的等待秒数(等 10 秒),那么它应该抛出一个异常。
现在我做到了:
it('enter email', function (done) {
browser
.then(() => browser.wait(piPage.getEmailValue().isPresent(), 10000))
//getEmailValue = element(by.id('email').getAttribute("value");
.then((isPresent) => {
assert.equal(isPresent, true, 'Email failed entering.')
})
.then(() => piPage.enterEmail("test@test.com"))
.then(() => done());
});
如果存在值,它实际上会找到元素并发送键。但是,10 秒 browser.wait 似乎并不适用,而是立即触发而无需等待。我不得不手动添加
browser.driver.sleep(10000).then(function() {
console.log('waited 10 seconds');
});
但这不是我想要的。
我想做的是让 browser.wait 找到元素被呈现/能够 send_keys 直到 x 秒,然后如果找到元素然后我们继续,否则基本上抛出异常。
【问题讨论】:
标签: javascript protractor mocha.js chai