首页 > 解决方案 > 检查量角器中是否存在元素

问题描述

我有一个角度应用程序,用户可以根据她/他的浏览器缓存获得不同的登录屏幕(非角度)。我正在使用量角器编写端到端测试用例,我想设置这样的条件

if(this element is present)
{
click it
}
else check if this element is pressent
{
click it
}

这是我尝试过的。

  browser.driver.findElements(by.id('element1')).then(function(result) {
      if (result) {
        browser.driver.findElement(by.id('element1')).click();
      }
      else {
        browser.driver.findElement(by.id('element2')).sendKeys("username");
      }
    }
  );

我的问题是,如果“if 条件”中的元素不存在,那么我会收到错误“ Failed: no such element: Unable to locate element:”。我不希望我的测试用例失败,因为该元素可能不存在,然后它应该转到 else 块。我在stackoverflow上看到了很多问题,但没有任何帮助。我真的很感激这里的任何帮助。

更新:请注意,这是一个非角屏幕,我只能使用 browser.driver.______ api。

标签: angularprotractor

解决方案


你走在正确的轨道上。因为 findElements 返回一个数组,所以您只需要更改您必须更改 if (result)的内容if (result.length>0)。使用 FindElements,什么也没有发现不是错误。


推荐阅读