我正在使用某种表的角度过滤器,我需要验证过滤器的结果是否正确。
之前我已经使用过这个表,我点击了元素:
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?
答案 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);