首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果元素在量角器中不可见,则继续

如果元素在量角器中不可见,则继续
EN

Stack Overflow用户
提问于 2016-03-24 21:17:05
回答 3查看 2.9K关注 0票数 2

我想检查一个元素是否可见,如果不可见,我希望我的测试继续进行其他测试。

问题是,如果元素不可见,则似乎什么都不起作用……我已经尝试过isDisplayed()isPresent()invisibilityOf()..。但如果元素不可见,则测试失败。例如:

代码语言:javascript
运行
复制
 element(myElement).isDisplayed().then(function(result) {
      if (result) {
      //do something
      }
    else {
     //do something else
     }
    }

如果存在myElement,则可以很好地工作。但是如果没有,测试就会失败,并返回错误:没有使用locator:By.cssSelector(myCss)找到元素。因此,不知何故,它不会解析isDisplayed()返回的promise,所以它永远不会转到else部分。如果元素没有显示,我可以做些什么来保持我的测试运行?

EN

回答 3

Stack Overflow用户

发布于 2016-03-24 22:50:46

您可以通过链接promises来解决此问题。仅当元素both存在并显示时,此函数才会返回true。

代码语言:javascript
运行
复制
var isApproachable = function(element) {
  return element.isPresent().then(function(present) {
    return present
      ? element.isDisplayed()
      : false;
  });
}

isApproachable(myElement).then(function(approachable) {
  if (approachable) ...
});
票数 2
EN

Stack Overflow用户

发布于 2016-03-25 21:22:35

为了清楚起见,isDisplayed要求在浏览器中实际呈现一个元素。isPresent表示元素列在dom中(和/或可见)。

如果元素不存在,isDisplayed将失败,因此您不能使用它来测试是否存在。您需要使用isPresent

你可以这样测试一下:

代码语言:javascript
运行
复制
describe('isPresent', function() {
    it('should not fail if element does not exist', function() {
        browser.get('http://google.com');
        // this will fail if you use isDisplayed
        $('#doesNotExist').isPresent().then(function(inDom) {
            if(inDom) {
                console.log('I EXIST!!!!1!');
            } else {
                console.log('NOT HERE...');
            }
        });
    });
});
票数 1
EN

Stack Overflow用户

发布于 2016-08-10 07:08:24

您可以在一个空函数中捕获错误。然而,如果除了您得到的"No element found using locator: By.cssSelector(myCss)“错误之外还发生了其他错误,比如"Stale element”,这是很危险的。

代码语言:javascript
运行
复制
element(myElement).isDisplayed().then(function(result) {
  if (result) {
    //do something
  }
  else {
    //do something else
  }
}.thenCatch(function(err) {};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36201154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档