在 Testcafe 初始化页面之前,我需要设置本地存储以绕过登录屏幕。我尝试注入(inject)自定义脚本,但这不起作用。
有人可以帮我怎么做吗?
最佳答案
要在 TestCafe session 中设置本地存储变量,您可以使用 ClientFunction's .您可以在 beforeEach Hook 中使用您的 key 设置本地存储变量,以便在您的每个测试之前调用它。实现此目的的代码可能如下所示:
const setLocalStorageItem = ClientFunction((key: string, value: string) => window.localStorage.setItem(key, value));
fixture(`My tests`)
.page("https://www.my-test-url.com")
.beforeEach(async (t) => {
await setLocalStorageItem("myLocalStorageKey", "myValue");
});
test('Some test', async (t) => {
// This assertion should be fine for every test
await t.expect(await getLocalStorageItem("myLocalStorageKey")).eql("myValue");
// more test code should follow here
})
随着 TestCafe 清除 localStorage and sessionStorage after each test ,如果您想在每个测试中访问相同的本地存储键/值对(或者由于某种原因需要为每个测试设置它),则需要这样做。
如果您只想为特定测试设置本地存储条目,您可以进行如下操作:
test('Some other test', async (t) => {
// my test code
}).before(async (t) => {
await setLocalStorageItem("testKey", "testValue");
});
关于e2e-testing - TestCafe页面初始化前如何设置本地存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66908694/