【发布时间】:2019-07-31 13:50:37
【问题描述】:
大家! 我是 TestCafe 的新手,我需要一些帮助来完成我想要实现的目标。
我有一个 React 网站,我在其中放置了 Facebook 登录信息。通常,当您进入页面并单击Login with facebook 时,会打开一个弹出窗口并正常输入您的凭据。之后,您将被重定向到页面,并且令牌保存在 localStorage 变量中,以供页面稍后查阅。
但是,当我为登录过程运行测试时,Testcafe 并没有打开弹出窗口,而是在同一页面上打开了 facebook 表单,并且从不重定向到该页面。
此外,我尝试使用ClientFunction(以及Roles)在本地存储上设置一些dummy token,但我的网站永远无法访问该令牌,因为testcafe似乎将此变量放在名为hammerhead的键上
所以,我的问题是,如何在测试中或手动输入此令牌,以便我的网站可以读取它并使用它进行一些功能?
这是我目前所拥有的。
/* global test, fixture */
import { WelcomePage } from './pages/welcome-page'
import {ClientFunction, Role} from 'testcafe';
const welcomePage = new WelcomePage()
const setLocalStorageItem = ClientFunction((prop, value) => {
localStorage.setItem(prop, value);
});
const facebookAccUser = Role(`https//mypage.net/`, async t => {
await setLocalStorageItem('token', 'my-token');
}, { preserveUrl: true });
fixture`Check certain elements`.page(`https//mypage.net/`)
test('Check element is there', async (t) => {
await t
.navigateTo(`https//mypage.net/`)
.wait(4000)
.useRole(facebookAccUser)
.expect(cetainElementIfLoggedIn)
.eql(certainValue)
.wait(10000)
})
任何帮助将不胜感激
感谢您的宝贵时间。
【问题讨论】:
标签: javascript reactjs facebook local-storage testcafe