Automation expect就是抛出一个“expect”;AssertionError:预期{Object(browser),then,…}等于true";

Automation expect就是抛出一个“expect”;AssertionError:预期{Object(browser),then,…}等于true";,automation,protractor,chai,Automation,Protractor,Chai,我的测试中的expect有一个错误 我犯了这个错误 [08:41:37] E/launcher - expected { Object (browser_, then, ...) } to equal true [08:41:37] E/launcher - AssertionError: expected { Object (browser_, then, ...) } to equal true at role.element.getText.then (/Users/jburque

我的测试中的expect有一个错误

我犯了这个错误

[08:41:37] E/launcher - expected { Object (browser_, then, ...) } to equal true
[08:41:37] E/launcher - AssertionError: expected { Object (browser_, then, ...) } to equal true
    at role.element.getText.then (/Users/jburquez/akamai/ConsoleUI/tests/e2e/console_bdd/steps/manage_agents_steps.js:114:109)
    at elementArrayFinder_.then (/Users/jburquez/akamai/ConsoleUI/node_modules/protractor/built/element.js:804:32)
    at ManagedPromise.invokeCallback_ (/Users/jburquez/akamai/ConsoleUI/node_modules/selenium-webdriver/lib/promise.js:1376:14)
    at TaskQueue.execute_ (/Users/jburquez/akamai/ConsoleUI/node_modules/selenium-webdriver/lib/promise.js:3084:14)
    at TaskQueue.executeNext_ (/Users/jburquez/akamai/ConsoleUI/node_modules/selenium-webdriver/lib/promise.js:3067:27)
    at asyncRun (/Users/jburquez/akamai/ConsoleUI/node_modules/selenium-webdriver/lib/promise.js:2927:27)
    at /Users/jburquez/akamai/ConsoleUI/node_modules/selenium-webdriver/lib/promise.js:668:7
    at process._tickCallback (internal/process/next_tick.js:68:7)
[08:41:37] E/launcher - Process exited with error code 199
[08:41:37] '<anonymous>' errored after 1.42 min
[08:41:37] Error in plugin "gulp-protractor"
Message:
    protractor exited with code 199
Details:
    domain: [object Object]
    domainThrown: true
我试图做的是验证一个元素是否被选中,因此阅读我看到的另一个建议,
.isSelected()
是最好的选择,但我不确定为什么抛出这个错误


希望你能帮助我

看起来您正在尝试将对象与布尔值进行比较。 如果您使用“chai”作为断言库,则必须解决这样做的承诺,否则使用“finally”。样本如下:

expect(element(".//div[@class='md-whiteframe-1dp outset inset']/md-checkbox").isSelected()).to.eventually.equal(true);


要找出使用expect with Promissions的正确方法需要一些时间。

我建议查看异步/等待语法。您还可以尝试在此处使用
browser.wait(ExpectedConditions.elementToBeSelected)

Then('Validate role {editrole} is selected', { timeout:30 * 1000 }, async (editrole) => {
    const agentRoles = element.all(by.repeater('ctrl.roles'))
    expect(await agentRoles.count()).not.to.be(0)
    await browser.wait(ExpectedConditions.elementToBeSelected(
        element(by.cssContainingText('div.md-whiteframe-1dp.outset.inset md-checkbox', editrole))
    ), 10000, `Expected ${editrole} to be selected`);
});
element(".//div[@class='md-whiteframe-1dp outset inset']/md-checkbox").isSelected().then(function (select) {
    expect(select).to.be.true;
});
Then('Validate role {editrole} is selected', { timeout:30 * 1000 }, async (editrole) => {
    const agentRoles = element.all(by.repeater('ctrl.roles'))
    expect(await agentRoles.count()).not.to.be(0)
    await browser.wait(ExpectedConditions.elementToBeSelected(
        element(by.cssContainingText('div.md-whiteframe-1dp.outset.inset md-checkbox', editrole))
    ), 10000, `Expected ${editrole} to be selected`);
});