代码之家  ›  专栏  ›  技术社区  ›  Игорь

TypeError:无法读取未定义的属性(读取“equal”)无法求解

  •  0
  • Игорь  · 技术社区  · 2 年前

    当我开始这个测试时,我总是收到“TypeError:无法读取未定义的属性(读取'equal')”错误。

    import { Given, When, Then } from '@wdio/cucumber-framework';
    import { expect, $ } from '@wdio/globals'
    //const { Given, When, Then } = require('cucumber');
    //const { expect } = require('chai');
    
    Given('I am on the login page', () => {
        // Открываем страницу
        browser.url('https://www.saucedemo.com/');
    });
    
    When('I click login button',async () => {
        // Кликаем на кнопку "Login" с айди "login-button"
        const loginButton = $('#login-button');
        loginButton.click();
        await browser.pause(2000);
    });
    
    Then('I should see “Epic sadface: Username is required” error message',async () => {
        // Ожидаем, что появится окно с ошибкой и указанным текстом
        const expectedText = "Epic sadface: Username is required"
        const errorMessageElement = $('.error-message-container h3[data-test="error"]')
        await errorMessageElement.waitForExist();
        const errorMessage = await errorMessageElement.getText();
        //console.log(errorMessage+ '-=-=-=-==-=-=-=-=-=-=-=-=-==-==-')
        await expect(expectedText).to.equal(errorMessage);
    });
    

    如您所见,我已尝试通过console.log检查“错误消息”。它是正确的,errorMessage包含正确的字符串“Epic sadface:用户名是必需的”。但为什么它没有通过呢?

    ve tried to "play" with async and put some "await" in code. Also I 尝试替换

    await expect(expectedText).to.equal(errorMessage)
    

    具有

    await expect(expectedText).toHaveTextContaining(errorMessage)
    
    0 回复  |  直到 2 年前
    推荐文章