我对Roles的幕后逻辑感到好奇。我确实知道他们会做一些cookie和本地存储魔术,而且我猜也涉及到一些窗口魔术

我猜想是因为在我们的一项测试中,我们的窗口属性之一正在消失,但是没有任何代码主动将其删除。因此,我假设登录后的Roles将创建一个快照,然后使用useRole()将其重新应用于每个测试用例

知道在哪里可以找到有关此行为的更多详细信息,以及如何指示testcafe等待特定操作完成后再拍摄该快照吗?

所有示例都通过单击signInButton来完成测试,我当时正在考虑使用t.expect(element.visible).ok();之类的元素等待元素出现,但这似乎有些奇怪(在beforeEach语句中运行断言。

最佳答案

TestCafe角色重新加载页面并应用以前存储的cookie和本地存储值,或者如果没有存储的值,则执行初始化步骤。它们不存储或更改窗口属性。但是,由于本地存储值不同,页面中的脚本可能会产生不同的结果。我认为您可以在TestCafe存储库中create an issue并提供可用于重现此行为的示例页面。

您可以添加t.wait或将返回到角色初始化函数的末尾的ClientFunction,以推迟创建本地存储快照。

关于testing - Testcafe角色在后台如何工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56024493/

10-13 06:51