首页 > 解决方案 > Chai 断言似乎不适用于我的 JS 和 Webdriverio 框架/方法?

问题描述

目前我使用对象建模方法来复制页面并初始化 wdio 文件中的 chai 库,但是我的方法似乎失败了,有什么想法吗?

方法:

confirmSuccessfulSubmission() {
    const successfulSubmissionHeader = $('#contact_reply h1');
    console.log("TEST2: " + successfulSubmissionHeader);
    console.log("TEST2: " + successfulSubmissionHeader.getText());
    successfulSubmissionHeader.should.equal('Thank You for your Message!');
    // successfulSubmissionHeader.waitForDisplayed(3000);
    // expect(successfulSubmissionHeader).to.equal('Thank You for your Message!');
}

测试执行的输出:

2019-02-21T21:14:16.752Z INFO wdio-cli:Launcher: Run onPrepare hook
2019-02-21T21:14:20.660Z INFO wdio-local-runner: Start worker 0-0 with arg:
[0-0] TEST2: [object Object]
[0-0] TEST2: Thank You for your Message!
2019-02-21T21:14:30.098Z DEBUG wdio-local-runner: Runner 0-0 finished with exit code 1
2019-02-21T21:14:30.106Z INFO wdio-cli:Launcher: Run onComplete hook

感谢您的帮助

标签: javascriptnode.jsseleniumchaiwebdriver-io

解决方案


基于这些行:

 console.log("TEST2: " + successfulSubmissionHeader);
 console.log("TEST2: " + successfulSubmissionHeader.getText());

返回此输出:

[0-0] TEST2: [object Object]
[0-0] TEST2: Thank You for your Message!

它看起来像在这一行:

successfulSubmissionHeader.should.equal('Thank You for your Message!');

您正在将对象successSubmissionHeader 与字符串“谢谢您的消息!”进行比较,我认为这不是您的本意。

利用

expect(successfulSubmissionHeader.getText()).to.equal('Thank You for your Message!');

而是将元素的文本与字符串进行比较。


推荐阅读