我有这段代码可以选择父元素的子元素:
cy.get('form[data-cy="user_add"]').find('[name="username"]').type('test');
这工作正常,但是当我需要不断选择父元素以便找到我想要输入/修改的子元素时,这就成为一个问题。
cy.get('form[data-cy="manage_users_addform"]').find('[name="username"]').type('testusername');
cy.get('form[data-cy="manage_users_addform"]').find('[name="password"]').type('testpassword');
cy.get('form[data-cy="manage_users_addform"]').find('[name="repeatpassword"]').type('testpassword');
cy.get('form[data-cy="manage_users_addform"]').find('[name="firstname"]').type('testfname');
cy.get('form[data-cy="manage_users_addform"]').find('[name="lastname"]').type('testlname');
cy.get('form[data-cy="manage_users_addform"]').find('[name="per_station"]').click();
cy.get('form[data-cy="manage_users_addform"]').find('[name="per_cashier"]').click();
cy.get('form[data-cy="manage_users_addform"]').find('[name="per_manage"]').click();
关于如何不不断重复选择表格有什么建议吗? Cypress 文档表示,由于默认情况下的异步性质,请尽可能不要使用变量。我还找到了一些关于摆脱这种异步性质的文档,并在打包之前执行 JavaScript 代码并在之后执行断言,但我只是想知道是否有更优雅的方法来执行此操作。
使用
.within()
更改查询开始的点(通常是 <body>
)。
cy.get('form[data-cy="manage_users_addform"]').within(() => {
cy.get('[name="username"]').type(...)
cy.get('[name="password"]').type(...)
...
})