用Protractor单击第一个tr表

时间:2018-02-10 17:05:43

标签: angularjs protractor

我有一张我要测试的笔记表。

<table class="table" ng-if="!NotesCtrl.loadingNotes && (NotesCtrl.notes | filter: { client : ClientCtrl.client.id }).length">
    <tr class="noteTableItem" ng-repeat="note in NotesCtrl.notes | filter: { client : ClientCtrl.client.id } track by note.id" ng-click="NotesCtrl.showNote(note.id)">
        <td>{{ note.title }}</td>
        <td>{{ note.created | date: 'dd-MM-yyyy - HH:mm' }}</td>
    </tr>
</table>

当我编写一个测试以查看是否只有一行时,它会通过:

it('should see one note-item', function(){
    var notes = element.all(by.css('.noteTableItem'));
    expect(notes.count()).toEqual(1);
});

当我想要点击第一个音符时,要触发ng-click,它会失败并显示以下消息:

it('should click the first item', function(){
    var notes = element.all(by.css('.noteTableItem'));
    expect(notes.count()).toEqual(1);
    notes.first().click();
    expect(noteDialog.isDisplayed());
});
  

失败:无法将元素<tr class="noteTableItem ng-scope">滚动到视图中

如何使用量角器点击第一项? (当我使用列表<ul></ul>时, 工作...)

2 个答案:

答案 0 :(得分:0)

尝试使用xpath:

element(by.xpath("//table/tr/td[0]")).click();

$$("table tr td").get(0).click();

答案 1 :(得分:0)

使用如下所示的executeScript方法(本机javaScript)滚动视图中的对象:

 var elem= element(locatorCss('Locator definition'));
 browser.executeScript("arguments[0].scrollIntoView();", elem.getWebElement()).then(function(){
     elem.click().then(function () {
        console.log("Object Clicked!!!");
      });
  });