我正在使用Protractor框架创建TypeScript并计划在类中使用一组辅助函数(例如isDisplayed(),isPresent(),isClickable()等),并尝试在spec文件中重用它们。 / p>
最终结果将如下所示:
selectDropDown(element, option);
enterText(element, text);
但是,由于无法从帮助文件中导出功能,因此在创建帮助文件时遇到了问题。自动完成或自动建议不起作用,因为无法访问该对象。 :(
helper.ts
import { } from 'jasmine';
import { by, element, browser } from 'protractor';
import { By } from 'selenium-webdriver';
export class helper {
async sayHello(name: String) {
console.log('Hello ' + name);
}
}
sample-page.ts
import { by, element, browser, WebElement } from 'protractor';
import { async } from 'q';
import { helper } from '../../helper'; //Importing the helper here
export class loginPage{
help123: helper = new helper();
help123. //Here the auto completion just doesn't happen.
我要去哪里错了?
答案 0 :(得分:0)
您将必须创建一个新变量才能使其工作,例如:
import { helper } from '../../helper';
export class loginPage{
let help = new helper();
help.sayHello('name');
}
一个更简单的解决方案可能是使助手函数中的方法静态化。如果您有:
export class helper{
static async sayHello(name:String){
console.log('Hello '+name);
}
}
然后您可以像下面这样调用此方法:
import { helper } from '../../helper';
export class loginPage{
helper.sayHello('name');
}
或者,在您的帮助器类中,您可以使用诸如以下的吸气剂:
export class helper{
static get x() {return new this();} //could be named anything, I chose 'x'
async sayHello(name:String){
console.log('Hello '+name);
}
}
可以允许您调用
之类的方法import { helper } from '../../helper';
export class loginPage{
helper.x.sayHello('name');
}