2
我正在测试一个页面,有时会呈现一个小部件,有时会呈现另一个小部件。等待一个承诺或另一个
我试图使用browser.wait()
来确保两个之一已经呈现,然后继续与适当的之间进行交互取决于它是。
这里是我的代码:
EC = protractor.ExpectedConditions
browser.wait(() => {
return EC.presenceOf(userField) || EC.presenceOf(notMyAccountElement)
}, WAIT_TIME, 'Lock form (auth0) never appeared.')
notMyAccountElement.isPresent().then((result) => {
if (result) {
notMyAccountElement.click()
browser.wait(EC.presenceOf(userField), WAIT_TIME, 'New lock form (auth0) never appeared.')
}
userField.sendKeys(user)
passField.sendKeys(password)
submitBtn.click()
})
这通常工作,但我在得到间歇性故障:
userField.sendKeys(user)
我可以偶尔这一行执行浏览器时看到它实际上是notMyAccountElement
即出现在页面上。
我认为最可能的问题是开幕browser.wait()
不能解决我期待的方式,但我想明白为什么。
Thanks @alecxe!我会试一试'EC.or()',如果它解决了我的问题,请回复。 –
我已经连续使用'EC.or()'运行了两个小时,没有发生任何故障。这似乎已经成功了。再次感谢! –