【问题标题】:Protractor e2e testing to find text量角器 e2e 测试以查找文本
【发布时间】:2015-05-07 18:49:23
【问题描述】:

我正在为我的 Angular 应用程序使用量角器进行 e2e 测试。 这是我的代码

<input type="button" value='Add New Record'/>
<table class="table table-striped s10 ng-scope">
    <tbody>
        <tr>
            <th>Name</th>
            <th>Age</th>
            <th>Appt Time</th>
            <th>Tag</th>
        </tr>
        <tr>
            <td>Bob</td>
            <td>2</td>
            <td>12:30AM</td>
            <td><input type="button" value='Add Tag'/></td>
        </tr>
         <tr>
            <td>Alice</td>
            <td>2</td>
            <td>10:10AM</td>
             <td><input type="button" value='Add Tag'/></td>
        </tr>
    </tbody>
</table>

我的问题是,如果我点击“添加新记录”,它会在表格中添加一条新记录。在这里,我想测试新创建记录的名称和“添加标签”按钮。 我试过下面的代码

it('Testing Add New Record', function(){  
    var tbl = element( by.css('.table'));
     var tblrow = tbl.all( by.css('tr')).get(0);
     var tbldata = tblrow.all(by.css('td')).get(0);
          expect(tbldata.getText()).toEqual('Alice');
     var tbldata = tblrow.all(by.css('td')).get(2);
     tbldata.click();
       });

它正在工作。但是如果我再添加一条记录,我们每次都必须更改代码。所以我想动态查找新创建记录的文本和“添加标签”按钮。

【问题讨论】:

    标签: angularjs protractor e2e-testing


    【解决方案1】:

    如果我理解正确,您需要验证在创建新记录后它是否显示为表中的最后一行。在这种情况下,不要通过索引获取它,而是使用last()

    element.all(by.css('table.s10 tr')).last();
    

    【讨论】:

    • 编辑了我的问题。根据 Appt Time 插入记录。
    • @NNR 如果我错了请纠正我,现在您需要在Appt Time 时间之前获取最新行吗?谢谢。
    • 感谢@alecxe 的回复。不是 Appt Time,我想按 Name 获取最新记录。
    • @NNR 谢谢。那么,您事先知道Alice 的名称,并且您想在表中以该名称查找合适的行吗?
    • 是的。还有一件事是我想点击同一行的“添加标签”按钮。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多