使用Protractor设置角度模型

Val*_*nck 4 javascript angularjs protractor

我正在尝试使用Protractor在我的网站上模拟用户故事.

用户必须输入使用自动完成的输入.在现实生活中,用户必须在输入中键入一些文本,然后用鼠标或更自然地用她的向下键来选择正确的命题.

问题是我似乎无法用Protractor模拟它.element.sendKeys只是不允许你这样做.我已经尝试了十几种不同的方式,它最多会产生不可预测的结果.

所以我想直接操纵ng-model behing我的输入.有没有办法从Protractor访问元素的范围并调用函数/ set属性?

这是我的问题的简化版本:

查看:

<div ng-controller="MyController"> 
  <input id="my-input" ng-model="myModel"/>
</div>
Run Code Online (Sandbox Code Playgroud)

控制器:

 myModule.controller('MyController', ['$scope', function($scope){
   $scope.myModel = "";
   //[...]
 }]);
Run Code Online (Sandbox Code Playgroud)

e2e量角器测试:

describe("setting myModel to a fixture value", function(){
  it("should set myModel to 'a test value'", function(){
    var myInput = element('my-input');
    // Now what?
  });
});
Run Code Online (Sandbox Code Playgroud)

ale*_*cxe 6

您可以使用.evaluate()直接设置模型值:

var elm = element(by.model("obj.field"));
elm.evaluate("obj.field = 'test';");
Run Code Online (Sandbox Code Playgroud)

要获得模型值:

elm.evaluate("obj.field").then(function (value) {
    console.log(value);
});
Run Code Online (Sandbox Code Playgroud)