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()'運行了兩個小時,沒有發生任何故障。這似乎已經成功了。再次感謝! –