【问题标题】:Looking for an element to not be present寻找不存在的元素
【发布时间】:2016-11-11 10:25:11
【问题描述】:

我正在尝试查找条件中是否缺少元素,如果该元素不存在,则该条件将采用两条不同的路径。但是我得到的是“找不到元素”,这是我需要的,但我需要解决这个问题。这是我尝试过的:

if (HomeScreen.tabs.propertiesTab.isPresent()) {
  HomeScreen.tabs.propertiesTab.click();
} else {
  HomeScreen.tabs.allTabsTab.click().then(function() {
    HomeScreen.allTabs.properties.click();
  })
}

HomeScreen.tabs.propertiesTab.isPresent().toBeFalsy().then(function(isVisible) {
  if (isVisible) {
    HomeScreen.tabs.propertiesTab.click();
  } else {
    HomeScreen.tabs.allTabsTab.click().then(function() {
      HomeScreen.allTabs.properties.click();
    });

  }
});

有什么建议吗?

【问题讨论】:

    标签: automation webdriver protractor


    【解决方案1】:

    尝试使用then() 明确解决承诺:

    browser.isElementPresent(HomeScreen.tabs.propertiesTab).then(function (isPresent) {
        if (isPresent) {
            // ...
        } else {
            // ...
        }
    });
    

    在这里使用browser.isElementPresent(),但它也应该与.isPresent()一起使用:

    【讨论】:

    • 这项工作但是元素存在,因为我可以看到它,如果我将所有内容注释掉并告诉它点击它会点击它。我做了一个 isPresent 的日志,它返回 false。
    • @NicolePhillips 好的,你确定你正确定位了元素并且没有其他元素匹配定位器吗?
    • 也许我需要的是可见性?
    • @NicolePhillips 如果您需要等待,那么可能 - 意思是,如果该元素实际存在但不可见,您可能需要 visibilityOfinvisibilityOf。对于存在/不存在检查,您可以使用stalenessOfpresenceOf
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多