如何在typescript的对象中使用类函数?
我正在写一篇文章,以结束考试。下面是page对象类的代码如何在typescript的对象中使用类函数?,typescript,protractor,e2e-testing,Typescript,Protractor,E2e Testing,我正在写一篇文章,以结束考试。下面是page对象类的代码 export class AppPage { NodeArrow(node) { let NodeArrow = $$('.toggle-children').get(node); return NodeArrow; } } 我试着在课外使用它 import { AppPage } from './app.po'; describe('Interactive component', async () => {
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);
}
但是它说Noderrow是未定义的。我怀疑我是否用打字机脚本正确地写下了这个函数。请告诉我我做错了什么类的构造函数无法返回承诺,因此您不能等待它
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);
}
});
导出类AppPage{
私有构造函数(){
//非异步代码
}
静态异步创建():承诺{
var r=新的AppPage();
等待r.Asynini()
返回r
}
异步asynInit():承诺{
//异步cod
等待延迟(100);
}
noderRow(节点){
让noderRow=$$('.toggle children').get(节点);
返回noderrow;
}
}
从“/app.po”导入{AppPage};
描述('Interactive component',async()=>{
beforeach(异步()=>{
page.navigateToEditor();
browser.waitForAngularEnabled(false);
});
let page=等待AppPage.create();
它('删除参数选项卡中的项目有效',异步()=>{
wait browser.wait(EC.visibilityOf(page.noderrow(0)),10000);
}
});
从您的新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);
})
});