我在进行量角器测试时返回错误。
以下是directory.page.js文件中对Webelement的引用:
get importErrorsList(){
return element.all(by.css('[ng-if="error.error.detailMessage"]'));
}
这是Webelement的屏幕截图,它是源信息: 最后,这是我用来引用Webelement的步骤,该步骤返回错误:
Then(/^The list of import errors contains this error message: "([^"]*)"$/, function (errorText, callback) {
browser.wait(EC.visibilityOf(importPageObj.alertMsg), timeouts.EC_TIMEOUT).then(function(){
browser.wait(() => {
//the next line causes the error
expect(directoriesPageObj.importErrorsList.getText()).to.eventually.contain(errorText).and.notify(callback);
}, timeouts.EC_TIMEOUT).then(() => {
browser.wait(EC.and(EC.visibilityOf(importPageObj.headerDropDownInWebView), EC.elementToBeClickable(importPageObj.headerDropDownInWebView)), timeouts.EC_TIMEOUT).then(() => {
callback();
});
});
});
});
有人可以帮我弄清楚为什么这行不通吗?
答案 0 :(得分:1)
您没有初始化directoriesPageObj
。因此,在使用它之前,您应该先做以下事情:
const directoriesPageObj = new DirectoriesPageObj()
,然后可以使用directoriesPageObj
变量。例如:
Then(/^The list of import errors contains this error message: "([^"]*)"$/, function (errorText, callback) {
browser.wait(EC.visibilityOf(importPageObj.alertMsg), timeouts.EC_TIMEOUT).then(function(){
browser.wait(() => {
const directoriesPageObj = new DirectoriesPageObj();
expect(directoriesPageObj.importErrorsList.getText()).to.eventually.contain(errorText).and.notify(callback);
}, timeouts.EC_TIMEOUT).then(() => {
browser.wait(EC.and(EC.visibilityOf(importPageObj.headerDropDownInWebView), EC.elementToBeClickable(importPageObj.headerDropDownInWebView)), timeouts.EC_TIMEOUT).then(() => {
callback();
});
});
});
});