使用locator找不到任何元素:by.model()错误

use*_*851 10 protractor

我正在为我的应用程序使用量角器编写端到端测试.我看到了表单的错误:

No element found using locator: By.model("address.fullName") error. 
Run Code Online (Sandbox Code Playgroud)

抛出此错误的相应量角器代码是:

var angularElement = element(By.model("address.fullName"));
angularElement.sendKeys("test");
Run Code Online (Sandbox Code Playgroud)

但是我可以使用以下方法获取此元素:

var angularElement = element(By.xpath('//input[@ng-model="address.fullName"]'));
Run Code Online (Sandbox Code Playgroud)

HTML片段:

输入ng-model ="address.fullName"type ="text"class ="control-input ng-pristine ng-invalid ng-invalid-required"size ="40"name ="fullName"ng-class ="{' required-field':isInformationSubmitted}"required =""

我不确定为什么会这样.有任何想法吗?

Avi*_*hay 4

我遇到了一些关闭错误,发生错误的原因是该项目未显示在页面上或量角器未完成更新其模型,因此在使用变量 i 之前: -
最大化页面:如果未看到该元素 browser.manage().window().maximize();
-打开列表项目位于:
-等待量角器完成更新其模型:

var ptor = protractor.getInstance();
ptor.waitForAngular();
Run Code Online (Sandbox Code Playgroud)

  • 从 1.5.0 开始,它将是 `browser.waitForAngular` - https://angular.github.io/protractor/#/api?view=Protractor.prototype.waitForAngular (2认同)