我在量角器中编写了一个自定义方法,但是在调用它时,首先执行console.logs,然后执行函数体。方法不是以同步方式执行的。同样,在方法主体起作用之前,将执行方法调用之后的日志。
任何人都可以展示一个简单示例来以正确的方式调用自定义方法吗?
我的方法简单地返回通过UI通过自动化添加的学生的姓名。学生姓名是随机生成的。
尝试使用.then(),但显示错误,则不是功能,然后尝试推迟但不起作用
答案 0 :(得分:0)
您可以尝试使用异步等待,https://javascript.info/async-await
我使用如下代码。它可能不符合其他标准/最佳实践,但对我有用。
public async testInputField(){
await this.navigateToPage();
await console.log('Setting username to foo.')
await this.setInputFieldText(userNameInputBox, 'foo');
await console.log('pressing apply')
await this.clickApplyButton();
await this.verifyInputFieldSet(userNameInputBox);
}
答案 1 :(得分:0)
量角器是异步工作的,因此您需要使用promise或async / await。
由于节点版本高于8,因此支持异步/唤醒;如Geaney上面给出的示例一样,最好总是使用它们。
另一种解决方法是承诺,
element(by.css('#id')).isPresent()).then(function(){
console.log('This console will print only after the element is present');
});