material-ui / formik(反应应用程序)上的柏树类型输入文本测试失败

cypress type input text test fails on material-ui / formik (react app)

我正在用 cypress 测试登录提交功能。

登录表单是 built with material-ui 和 formik。

当我 运行 测试时,我无法在 Input 上获得 'data-testid' 道具。

测试代码

describe('user', () => {
  beforeEach(() => {
    cy.visit('http://localhost:9080');
  });

  it('can visit login app', () => {
    cy.contains('login').click();
    cy.url().should('include', 'login');
    cy.get('[data-testid=username]').type('yuchung');
    cy.get('[data-testid=password]').type('yuchung1234');
    cy.get('button[type=submit]').click();

    cy.contains('logout');
  });
});

错误信息

示例代码

code sample

input docs 中所述,您必须像这样将带有 inputProps 属性的数据测试属性传递到输入字段中:inputProps={{data-testid: 'username'}}.

这将使您可以使用正在使用的 get 函数访问输入字段,并将文本实际输入到输入中。

希望这对您有所帮助。 编码愉快。

我会尝试使用反引号代替。看看是不是这样..

cy.get(`[data-testid="username"]`).type('yuchung');

但如果我没记错的话,formik 会为 Dom 提供输入的唯一名称。您可能可以改用它们。使用 cy.log 打印 formik 输入的值。

或者你也可以,我查看了DOM,手动查看是否打印了这些值..