Testcafe角色在后台如何工作

时间:2019-05-07 14:07:36

标签: roles testcafe

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

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

将其重新应用于每个测试用例

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

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

1 个答案:

答案 0 :(得分:1)

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

您可以添加$.ajax({ url:'THIS IS YOUR PHP FILE', type: 'POST', data: {THIS IS THE DATA YOU SEND TO PHP}, success: function(data){ console.log(data); //THIS IS THE RESPONSE YOU GET BACK } }); 或将{Promise返回到Role初始化函数的末尾的t.wait,以推迟创建本地存储快照。