加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angle-ui-bootstrap – 量角器:等待存在但未显示的元素

发布时间:2020-12-18 00:19:41 所属栏目:安全 来源:网络整理
导读:我已经写了一个测试来检查一个元素是否在屏幕上可见,在我的情况下,一个角度引导可折叠面板,又称为“警告”.代码工作,但测试用于失败?75%的时间. 在“警告”的显示上有一个崩溃动画,我无法关闭动画的测试,因为它是一个jquery动画.警告始终在DOM中“存在”,只
我已经写了一个测试来检查一个元素是否在屏幕上可见,在我的情况下,一个角度引导可折叠面板,又称为“警告”.代码工作,但测试用于失败?75%的时间.

在“警告”的显示上有一个崩溃动画,我无法关闭动画的测试,因为它是一个jquery动画.警告始终在DOM中“存在”,只要没有理由显示就会崩溃.

起初我用这段代码测试了,这很简单:

expect(element('.warning').isDisplayed()).toEqual(true);

当我需要测试该元素不显示时,问题出现,例如:一旦显示警告,一些操作会导致它崩溃.

那个测试:

expect(element('.warning').isDisplayed()).toEqual(false);

只有在动画开始的时候才会通过.当元素仍然显示时检查条件时将失败.

我想出了两个解决方案.

容易的一个使用ptor.driver.sleep(2000).我的测试慢了,是不能接受的.

硬的,丑的,但这给我很好的结果:

exports.isWarningDisplayed = function (expectedVisibility) {
  return ptor.driver.wait(function () {
     if (expectedVisibility) {
       return element(by.css('.warning')).isDisplayed().then(function(visibility) {
         return visibility === expectedVisibility;
       });
      } else {
        return element.all(by.css('.warning .collapse.in')).then(function(items) {
          return items.length === 0;
       });
      }
    },2000).then(function() {
      return element.all(by.css('.warning .collapse.in'));
    }).then(function (items) {
      return items.length > 0;
    });
};

我的问题是,它只是觉得非常错误.你找到一个更好的办法来处理这种情况吗?我的期望是:

expect(element('.warning').not.isDisplayed()).toEqual(true);

…但是在量角器或webDriver AFAIK中没有.

解决方法

我有一个类似的问题 – 想要测试一个元素什么时候不再被禁用.我试图在没有测试的情况下尝试解决问题,然后意识到我可以将’not’测试移动到css选择器中:
// we're looking for when the element doesn't have a .disabled class
var availableElement = by.css('.some-class:not(.disabled)');
browser.wait(function() {
  return ptor.isElementPresent(availableElement);
},30000);

expect(ptor.isElementPresent(availableElement)).toBeTruthy();

不知道如果它有帮助,但我有一个清晰的时刻,所以我会分享.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读