【问题标题】:Checking for presence of elements using Protractor and chai as promised按照承诺使用 Protractor 和 chai 检查元素是否存在
【发布时间】:2017-04-29 20:29:44
【问题描述】:

我在测试我的 node.js 应用程序中是否缺少元素时遇到问题。

我有一个enterBtn 按钮,单击它时会显示resultsTableclearBtnenterBtn 始终存在。

我正在尝试测试当我单击 clearBtnresultsTable 会消失,但我遇到了问题。

'use strict';

const chai = require('chai');
chai.use(require('chai-as-promised'));
chai.should();
const expect = chai.expect;

require('./lib/test-helper');

const until = protractor.ExpectedConditions;

describe('My App', function() {
    it('should clear resultsTable clearBtn is clicked', function(){
        var resultsTable = element(by.id('results-table'));
        clearBtn.click();

        expect(resultsTable.isPresent()).to.eventually.be.false;
      }); 
});

我也尝试过这样做:

resultsTable.isPresent().then(function(bln) {
     expect(bln).to.equal(false);
});

这也没有用:

"Error: timeout of 2000ms exceeded. Ensure the done() callback is being called in this test."

但是,如果我尝试使用下面的代码测试始终存在的enterBtn 的存在,它就可以工作。

var enterBtn = element(by.id('enter'));
expect(enterBtn.isPresent()).to.eventually.be.true;

我不知道发生了什么......

任何帮助将不胜感激!谢谢。

【问题讨论】:

  • 你能展示完整的测试吗?
  • 查看摩卡的这个答案。检查您使用的依赖项/配置设置很重要。验证后,请提供有关您正在测试的应用类型和量角器配置的更多信息。 stackoverflow.com/questions/42839202/…
  • @MariaInesParnisari 我添加了更多细节,希望更有意义。
  • 你不应该把var resultsTable = element(by.id('results-table'));的行放在调用click()之后吗?
  • @MariaInesParnisari 实际上,在我的测试脚本中,我在描述的正下方定义了一堆变量。我也在那里定义了输入按钮,并且在积极的情况下有效。这只是我期待一个不起作用的错误场景的地方 o.O

标签: javascript protractor chai chai-as-promised


【解决方案1】:

点击clearBtn后,元素是否立即消失?
如果不是,请尝试在 clearBtn.click() 之后休眠,以确保该对象在预期之前消失。

您还可以通过使用
来简化您的期望 期望(resultsTable.isPresent()).toBe(false)

describe('My App', function() {
    it('should clear resultsTable clearBtn is clicked', function(){
        var resultsTable = element(by.id('results-table'));
        clearBtn.click();
        browser.sleep(2000);
        resultsTable.isPresent().then(function(bln) {
            expect(bln).toBe(false);
        });
    }); 
});

如果对象可能需要超过 2 秒,您可以尝试使用此递归函数 https://stackoverflow.com/a/43679616/7761311

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-26
    相关资源
    最近更新 更多