我要做的是确定登录用户是否是公司的客户。我有一个div,如果登录的人是管理员,则显示管理员ID,如果不是,则重定向到登录屏幕。我想有条件地测试尝试登录的帐户ID是客户还是经理,并且如果是这种情况,则执行不同的操作。如果测试结果为真,那么一切都很好并且承诺得到解决,但如果失败,测试就会停止(等待答案直到等待已经完成),而不是给出错误的结果。
.then(browser.executeScript('return window.find("isCompany:true");')),
.then(function () {
return expect(browser.wait(EC.textToBePresentInElement(element(by.id("url")), qr), wait)).toBe(true);
}, function () {
....
});
答案 0 :(得分:1)
我认为你需要解决browser.wait()
:
browser.wait(EC.textToBePresentInElement(element(by.id("isCompany")), 'true'), wait).then(function () {
// user is a customer
}, function () {
// user is not a customer
});
答案 1 :(得分:0)
我认为如果你设置一个辅助函数来返回ExpectedConditions.textToBePresentInElement
的值会更容易。然后你不必担心将承诺链接在一起。我使用一个名为Utils
的辅助类来完成与你正在做的事情完全相同的事情。这是一个例子
在utils类中我有:
function waitForElementText(element, elementText) {
return browser.wait(this.ec.textToBePresentInElement(element, elementText), this.timeout);
}
使用您的代码段,您可以像这样使用它:
util.waitForElementText(element, elementText)
.then(function (isCompany) {
if(isCompany) {
// do something
} else {
// do something else
}
}