Cypress:在父元素中选择子元素,而无需不断地重新选择父元素

问题描述 投票:0回答:1

我有这段代码可以选择父元素的子元素:

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 代码并在之后执行断言,但我只是想知道是否有更优雅的方法来执行此操作。

testing automated-tests cypress
1个回答
0
投票

使用

.within()
更改查询开始的点(通常是
<body>
)。

cy.get('form[data-cy="manage_users_addform"]').within(() => {
  cy.get('[name="username"]').type(...)
  cy.get('[name="password"]').type(...)
  ...
})
© www.soinside.com 2019 - 2024. All rights reserved.