我目前正在从事赛普拉斯测试,但遇到一个我找不到答案的问题。希望有人可以提供帮助。
因此,在ReactJs中,我要测试以下组件:
<Link
to={`/example/${exampleId}/subexample/create`}
className={classes.linkIcon}
title="Create subexample"
data-test="new-subexample"
>
为了测试这一部分,我首先在赛普拉斯创建了一个新的example
并可以正常工作,但是随后测试subexample
却给我带来了问题,因为data-test="new-subexample"
并没有做什么期望(即单击/example/:exampleId/subexample/create
链接)。这是一些代码:
cy.get("[data-test=new-subexample]").click()
const subexample = faker.lorem.paragraph().substring(0, 200);
......
cy.get('[data-test="submit-subexample"]').click();
cy.get(".toast--success").should("be.visible");
});
以前有人遇到过这种情况吗?您如何设法单击ID总是在变化的链接?
另外,也许一种方法是在创建:exampleId
之后(也通过赛普拉斯)获取example
,但是我找不到任何地方可以使用赛普拉斯从URL获取元素。 / p>
谢谢。
更新:问题是重定向需要花费一些时间,并且从未及时完成以通过测试。我在重定向之前添加了一个等待时间(使用cy.wait()),现在测试通过了。
答案 0 :(得分:0)
要在重定向后测试URL,可以使用cy.url
。
cy.url().should('include', `/example/${exampleId}/subexample/create`);