все!Я новичок в TestCafe, и мне нужна помощь в достижении чего-то, чего я хочу достичь.
У меня есть веб-сайт React, где я размещаю логин на Facebook.Обычно, когда вы заходите на страницу и нажимаете Login with facebook
, открывается всплывающее окно и обычно вводите свои учетные данные.После этого вы будете перенаправлены на страницу, и токен будет сохранен в переменной localStorage
, чтобы страница могла обратиться к ней позже.
Однако, когда я запускаю тест для процесса входа в систему, Testcafe вместо того, чтобы открывать всплывающее окно, открывает форму facebook на той же странице и никогда не перенаправляет на страницу.
Кроме того, я попытался установить dummy token
в локальном хранилище, используя ClientFunction
(а также Roles
), и мой веб-сайт никогда не сможет достичь этого токена, потому что 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)
})
Любая помощь будет высоко ценится
Спасибо за ваше время.