Cypress ReferenceError: input is undefined (Cypress, Cucumber, POM)

Cypress ReferenceError: input is undefined (Cypress, Cucumber, POM)

我正在努力寻找原因: 我正在使用 Cypress、Cucumber 和 POM 方法。 这是我的 POM 文件 LoginPage.js

class LoginPage {

    get usernameInput() {
        return cy.get('input[name="email"]');
    }
    get passwordInput() {
        return cy.get('input[name="password"]');
    }
    get submitBT() {
        return cy.get('button[type="submit"]');
    }

    loginToCMS() {
        cy.visit('https://example.com')
        usernameInput.type('admin@admin.com');
    }
}

export default new LoginPage

然后我尝试在另一个 loginSteps.js 文件中调用 loginToCMS() 函数:

import { Given, When, Then, And } from 'cypress-cucumber-preprocessor/steps'
import LoginPage from '../../pages/LoginPage'

Given('user is logged in CMS', () => {
   LoginPage.loginToCMS(); 
})

当 运行 特征文件时,我得到一个错误:Reference Error: usernameInput is not defined

usernameInput是登录页面class上的一个函数,所以你要用this调用它。

class LoginPage {
  get usernameInput() {
    return cy.get('input[name="email"]');
  }
  ...
  loginToCMS() {
    cy.visit('https://example.com');
    this.usernameInput.type('admin@admin.com');
  }
  
}