NNR*_*NNR 5 angularjs protractor
我正在使用量角器编写e2e测试用例.我正在尝试编写排序测试(升序,降序).这是我的HTML代码
<tbody>
<tr>
<td>
<a ng-click="sortBy('Name')" href="" style="text-decoration: none;" class=""> Name</a>
</td>
<td>
<a ng-click="sortBy('RollNo')" href="" style="text-decoration: none;"> Roll Number</a>
</td>
<td>
<a ng-click="sortBy('subject')" href="" style="text-decoration: none;"> Subject</a>
</td>
</tr>
<tr>
<td>ANDREW, STRAUSS</td>
<td>122</td>
<td>Maths</td>
</tr>
<tr>
<td>ANDREW, STRAUSS</td>
<td>123</td>
<td>Science</td>
</tr>
</tbody>
Run Code Online (Sandbox Code Playgroud)
我们可以测试排序.如果有,怎么样?
要按任何顺序测试排序,
expect语句进行验证.使用Javascript sort()方法按升序reverse()检查排序并按降序检查排序.
您可以通过将元素添加到数组中来按升序测试元素的排序,然后使用已排序的数组对其进行验证.以下是如何操作的示例 -
var sorted = [] , unSorted = [];
var ele = element.all(by.css(tbody tr td:nth-of-type(1)));
ele.each(function(eachName){
eachName.getText().then(function(name){
unSorted[i] = name;
i++;
});
}).then(function(){
//check sorting
sorted = unSorted.slice();
sorted.sort(); //use sort function of Javascript
expect(sorted).toEqual(unSorted);
});
Run Code Online (Sandbox Code Playgroud)
类似地,您可以尝试使用其他元素来检查您的案例中按RollNo和subject排序的其他类型的排序.如果由于量角器速度快而遇到异步错误问题,那么您可以使用循环链接排序验证码.
另一种方法是使用map()量角器函数将所有元素文本放入数组中,然后检查排序.我建议使用它.这是一个例子 -
ele.map(function(eachName){
return eachName.getText().then(function(unSorted){
return unSorted;
});
}).then(function(unSorted){
var sorted = unSorted.slice();
sorted = sorted.sort(); //sort the array
expect(sorted).toEqual(unSorted); //check if both sorted and unsorted arrays are same
});
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
5433 次 |
| 最近记录: |