量角器 - 验证元素是否存在

时间:2015-07-01 08:37:23

标签: testing protractor end-to-end

我正在使用某种表的角度过滤器,我需要验证过滤器的结果是否正确。

之前我已经使用过这个表,我点击了元素:

element.all(by.xpath('.//td[.="89" and @class="ultranarrow ng-binding"]')).click();

这基本上点击<td>有值89的元素。我输入例如数字8进行过滤后我需要验证这个数字是否仍然存在所以我写这个:

expect(element.all(by.xpath('.//td[.="89" and @class="ultranarrow ng-binding"]')).isPresent()).toBe(true);

不幸的是我收到了错误:

  

对象[object Object]没有方法&#39; isPresent&#39;

我没有找到任何其他方法来验证是否存在某些问题,语法中是否存在问题或是否有其他方法可以替换isPresent?

2 个答案:

答案 0 :(得分:4)

isPresent仅适用于ElementFinder,不适用于ElementArrayFinder,因此您在使用all后不应拨打电话:

expect(element(by.xpath('.//td[.="89" and @class="ultranarrow ng-binding"]')).isPresent()).toBe(true); 

如果您确实想使用all,请尝试使用count()

expect(element.all(by.xpath('.//td[.="89" and @class="ultranarrow ng-binding"]')).count()).toBe(1);

答案 1 :(得分:1)

我不确定,但我认为你不能拥有element.all(by.xpath(''));
所以你可以尝试::::

expect(element(by.xpath('.//td[.="89" and @class="ultranarrow ng-binding"]')).isPresent()).toBe(true); 

或选择不同的定位器

expect(element.all(by.css('td[class="ultranarrow ng-binding"]')).isPresent()).toBe(true);