我正在编写一个角度测试并结束测试。这是页面对象类的代码。
export class AppPage {
NodeArrow(node) {
let NodeArrow = $$('.toggle-children').get(node);
return NodeArrow;
}
}
并且我试图在课堂之外使用它。
import { AppPage } from './app.po';
describe('Interactive component', async () => {
beforeEach(async () => {
page.navigateToEditor();
browser.waitForAngularEnabled(false);
});
let page = await new AppPage();
it('Deleting item in Paramter tab works', async() => {
await browser.wait(EC.visibilityOf(page.NodeArrow(0)), 10000);
}
,但它表示未定义NodeArrow。我怀疑我是否用打字稿正确地写下了功能。请让我知道我做错了什么
答案 0 :(得分:1)
类的构造函数无法返回承诺,因此您无法await
。
import { AppPage } from './app.po';
describe('Interactive component', async () => {
beforeEach(async () => {
page.navigateToEditor();
browser.waitForAngularEnabled(false);
});
let page = new AppPage(); // No await
it('Deleting item in Paramter tab works', async () => {
await browser.wait(EC.visibilityOf(page.NodeArrow(0)), 10000);
}
});
如果您有需要在正确初始化对象之前完成的异步代码,则可以使用静态帮助函数:
export class AppPage {
private constructor() {
// non async code
}
static async create() : Promise<AppPage> {
var r = new AppPage();
await r.asynInit()
return r
}
async asynInit() : Promise {
// async cod
await delay(100);
}
NodeArrow(node) {
let NodeArrow = $$('.toggle-children').get(node);
return NodeArrow;
}
}
import { AppPage } from './app.po';
describe('Interactive component', async () => {
beforeEach(async () => {
page.navigateToEditor();
browser.waitForAngularEnabled(false);
});
let page = await AppPage.create();
it('Deleting item in Paramter tab works', async () => {
await browser.wait(EC.visibilityOf(page.NodeArrow(0)), 10000);
}
});
答案 1 :(得分:1)
从您的await
中删除new AppPage()
import {
AppPage
} from './app.po';
describe('Interactive component', async () => {
beforeEach(async () => {
page.navigateToEditor();
browser.waitForAngularEnabled(false);
});
let page = new AppPage(); // remove await
it('Deleting item in Paramter tab works', async () => {
await browser.wait(EC.visibilityOf(page.NodeArrow(0)), 10000);
})
});