我必须通过以下方式断言:
expect(accessPolicyPage.accessPolicyName).toEqual(element.all(by.binding("pol.name")).get(0).getText());
它给了我一些很长的错误,如下所示。
预期'访问策略名称01'等于({ptor_:({controlFlow: 函数,schedule:Function,setFileDetector:Function,getSession: 函数,getCapabilities:函数,退出:函数,动作: 函数,touchActions:函数,executeScript:函数, executeAsyncScript:Function,call:Function,wait:Function,sleep: 函数,getWindowHandle:Function,getAllWindowHandles:Function, getPageSource:Function,close:Function,getCurrentUrl:Function, getTitle:Function,findElementInternal_:Function, findElementsInternal_:Function,takeScreenshot:Function,manage: 功能,切换
答案 0 :(得分:1)
你在控制台上看到的内容是一个可怕的" 承诺对象表示。如果您需要实际值,使用then()
明确解决承诺:
element.all(by.binding("pol.name")).get(0).getText().then(function (text) {
expect(accessPolicyPage.accessPolicyName).toEqual(text);
});
或者,由于accessPolicyPage.accessPolicyName
是事先定义的实际文本,您只需交换匹配器中的内容,然后让让expect()
隐式解析承诺:
expect(element.all(by.binding("pol.name")).get(0).getText()).toEqual(accessPolicyPage.accessPolicyName);
此选项更简单,通常建议使用。
答案 1 :(得分:1)
事实上,量角器支持对承诺的期望。但它只处理案例,当期望的第一个参数是承诺。以下应该有效:
expect(somePromise).toEqual(someString);
expect(somePromise).toEqual(anotherPromise);
但是这个不会:
expect(notPromise).toEqual(somePromise);
答案 2 :(得分:0)
getText()返回一个promise而不是text,需要处理。
Protractor: element.getText() returns an object and not String