所以我用Protractor测试时遇到了一点问题。 我试图对我朋友正在制作的节目进行新的测试。 在代码(用Angularjs编写)中有一些元素(md-sidenav)实际上隐藏了一个在另一个之后,当前显示的元素是通过按下按钮(我不知道如何,我认为ng-click和ng-class)。
当我使用该功能时:
element(by.css('locator')).isDisplayed();
我在其中一个现在没有显示的元素上执行此操作。 结果是" TRUE",因为所有元素现在都在显示,它们只是一个在另一个之后。 如果我需要知道显示的元素,我该怎么做才能解决这个问题?
答案 0 :(得分:0)
找到所有这些内容并使用filter()
过滤掉可见的内容:
$$('locator').filter(function(elm) {
return elm.isDisplayed();
}).first();
其中$$('locator')
相当于element.all(by.css('locator'))
。
答案 1 :(得分:0)
使用一些预期条件以便元素可单击,尝试在promise中写入所有内容。 element.all(by.id( '1stClick'))。然后(函数(){ 元件(by.id( '2ndClick'))。然后(函数(){ 等。, }); }); https://angular.github.io/protractor/#/api?view=ExpectedConditions