【问题标题】:send keys to element by model in repeater在转发器中按模型向元素发送键
【发布时间】:2015-05-11 18:44:07
【问题描述】:

按照这个例子:Protractor get element by model in repeater array,我遇到了麻烦。我想将输入值发送到中继器内的元素。希望这是一个简单的解决方案!

我的 HTML 看起来与此类似。主要区别在于“posts”与“user.posts”。

<tr ng-repeat="post in user.posts">
    <td ng-click="activePost(post)" class="title">{{post.title}}</td>
    <td><button class="btn btn-danger" ng-click="delete(post)">Delete</button></td>
  <td><input type="text" ng-model="post.subtitle" 
        id="{{post.id}}" /></td>
 </tr>

然后按照例子,我写了这样的东西:

element.all(by.repeater('post in user.posts')).then(function(posts) {
   var activePost = posts[0].element(by.model('post.subtitle'));
   activePost.sendKeys('My post');
});

量角器测试在“activePost.sendKeys('My post')”处失败,并出现以下错误:

NoSuchElementError: No element found using locator:  
by.model("post.subtitle"). 
Stacktrace:
         NoSuchElementError: No element found using locator: by.model("post.subtitle")
        at Array.forEach (native) Error
        at /Users/.../e2e/spec.js:51:17
        at Array.forEach (native) From: Task: Asynchronous test function: it() Error
        at [object Object].<anonymous> (/Users/.../e2e/spec.js:32:3)
        at Object.<anonymous> (/Users/.../e2e/spec.js:2:1)

有人对我可以尝试什么或以不同的方式思考它有什么建议吗?谢谢!

回答:Protractor 抛出的错误与转发器完全无关,而是与视图中缺少的结束 div 标记有关。是不是偶尔会出现这样的怪事?去搞清楚。

【问题讨论】:

    标签: javascript angularjs testing protractor end-to-end


    【解决方案1】:

    这里不需要解决promise,只需elementelement.all()

    var elm = element.all(by.repeater('post in user.posts')).first().element(by.model('post.subtitle'));
    elm.sendKeys('My post');
    

    请注意,我在这里使用的是first()


    请注意,简单的by.tagName() 定位器也可以在这里工作:

    var elm = element.all(by.repeater('post in user.posts')).first().element(by.tagName('input'));
    elm.sendKeys('My post');
    

    【讨论】:

    • 我尝试了你的建议,但我仍然得到同样的错误。你还有其他想法吗?
    • @user3495469 页面上还有其他post in user.posts 转发器吗?您在页面上看到任何 iframe 吗?谢谢。
    • 好电话!我在页面上确实有另一个转发器,但是它是“user.posts 中的条目”与“user.posts 中的帖子”。那会有什么不同吗?页面上没有 iframe。
    • 还是同样的错误,如果 ng-model="post.subtitle" 在多个地方被引用会不会有问题?我正在测试这个理论。
    • @user3495469 是的,但是我提供的另一种方法(使用标签名称)也不适用于您,是吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-26
    • 2012-04-05
    • 1970-01-01
    相关资源
    最近更新 更多