当我开始这个测试时,我总是收到“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)