簡體   English   中英

量角器e2e測試表頭和 <tr> , <td> 標簽

[英]Protractor e2e test table header and <tr>,<td> tags

我在桌子底下使用。 在那里我想測試每個標簽(th,td標簽),該標簽中的文本和該文本的計數。 HTML片段

<table class="table table-striped">
   <tbody>
      <tr>
         <th><b><a ng-href="" ng-click="predicate='id';reverse=!reverse">Patient Id</a></b></th>
         <th><b><a ng-href="" ng-click="predicate='accountNumber';reverse=!reverse" class="">Account Number</a></b></th>
         <th><b><a ng-href="" ng-click="predicate='title';reverse=!reverse">Title</a></b></th>
         <th><b><a ng-href="" ng-click="predicate='firstName';reverse=!reverse">First Name</a></b></th>
         <th><b><a ng-href="" ng-click="predicate='lastName';reverse=!reverse">Last Name</a></b></th>
         <th><b><a ng-href="" ng-click="predicate='middleName';reverse=!reverse">Middle Name</a></b></th>
         <th><b><a ng-href="" ng-click="predicate='sex';reverse=!reverse">Sex</a></b></th>
         <th><b><a ng-href="" ng-click="predicate='dob';reverse=!reverse">Dob</a></b></th>         
      </tr>

      <tr ng-repeat="listItem in filteredListItems | orderBy:predicate:reverse" ng-class="rowClass(listItem)" class="ng-scope">
         <td class="ng-binding">10</td>
         <td class="ng-binding">Tam</td>
         <td class="ng-binding">Mr.</td>
         <td class="ng-binding">Tam</td>
         <td class="ng-binding">Vinh</td>
         <td class="ng-binding">J.</td>
         <td class="ng-binding">F</td>
         <td class="ng-binding"></td>
         <td><a ng-href="#/detailView/patients/10" href="#/detailView/patients/10">Details</a></td>
         <td><button ng-click="deleteRecord(10)" class="btn btn-danger btn-xs"><span class="glyphicon glyphicon-remove"></span> Delete</button></td>
      </tr>

     <tr ng-repeat="listItem in filteredListItems | orderBy:predicate:reverse" ng-class="rowClass(listItem)" class="ng-scope">
         <td class="ng-binding">12</td>
         <td class="ng-binding">Tam12</td>
         <td class="ng-binding">Mr.</td>
         <td class="ng-binding">Steve</td>
         <td class="ng-binding">John</td>
         <td class="ng-binding">A.</td>
         <td class="ng-binding">F</td>
         <td class="ng-binding"></td>
         <td><a ng-href="#/detailView/patients/12" href="#/detailView/patients/12">Details</a></td>
         <td><button ng-click="deleteRecord(12)" class="btn btn-danger btn-xs"><span class="glyphicon glyphicon-remove"></span> Delete</button></td>
      </tr>
   </tbody>
</table>

我試過這樣,但它不起作用。

it('Patient Page text testing', function(){

        var table = element(by.css('.table'));
    var firsttag = table.element(by.tagName('tbody'));
    var secondtag = firsttag.all(by.tagName('tr')).get(0);
    var thirdtag = secondtag.all(by.tagName('th')).get(0);        
     expect(element(by.xpath('//b/a')).getText()).toEqual('Patient Id');
    var thirdtag = secondtag.all(by.tagName('th')).get(1);        
     expect(element(by.xpath('//b/a')).getText()).toEqual('Account Number');
});

在上面的測試中,期望是有效的,但第二個期望是行不通的。

錯誤:

Message:
 Expected 'Patient Id' to equal 'Account Number'.

仍處於第二個預期,它正在期待“患者身份”。 我不知道我做錯了什么。

相反,使用element.all()查找所有標頭,並使用map()一次性斷言列表:

var headers = element.all(by.css('table.table th a')).map(function(elm) {
    return elm.getText();
});

expect(headers).toEqual([
    "Patient Id",
    "Account Number",
    "Title",
    "First Name",
    "Last Name",
    "Middle Name",
    "Sex",
    "Dob"
]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM