Я новичок в драматургии. Я пытаюсь следовать этому https://playwright.dev/docs/auth#reuse-signed-in-state, чтобы я мог войти в систему, а затем сохранить сеанс для дальнейших тестов.
Мои шаги отлично работают в тесте, но как только я переместил их в global-setup.ts, я получаю тайм-аут:
import { chromium, FullConfig } from '@playwright/test'
async function globalSetup(config: FullConfig) {
const browser = await chromium.launch()
const page = await browser.newPage()
await page.goto('MYDOMAIN/login');
await page.locator("a[testid='googleSignIn']").click()
await page.locator("input[type='email']").fill('MYEMAIL')
await page.locator(
"button[class='VfPpkd-LgbsSe VfPpkd-LgbsSe-OWXEXe-k8QpJ VfPpkd-LgbsSe-OWXEXe-dgl2Hf nCP5yc AjY5Oe DuMIQc LQeN7 qIypjc TrZEUc lw1w4b']",
).click()
await page.locator("input[type='password']").fill('MYPASSWORD')
await page.locator(
"button[class='VfPpkd-LgbsSe VfPpkd-LgbsSe-OWXEXe-k8QpJ VfPpkd-LgbsSe-OWXEXe-dgl2Hf nCP5yc AjY5Oe DuMIQc LQeN7 qIypjc TrZEUc lw1w4b']",
).click()
// Save signed-in state to 'storageState.json'.
await page.context().storageState({ path: 'storageState.json' })
await browser.close()
}
export default globalSetup
Вышеупомянутые шаги нормально регистрируют меня в тесте, но теперь я настроил свой файл конфигурации для использования сохраненного хранилища сеансов:
storageState: 'storageState.json',
Когда я запускаю тест, я не вижу, как появляется браузер, он просто ждет минуту, а затем говорит:
locator.click: Превышено время ожидания 30000 мс. ========================== журналы ====================== ===== ожидание селектора "button[class='VfPpkd-LgbsSe VfPpkd-LgbsSe-OWXEXe-k8QpJ VfPpkd-LgbsSe-OWXEXe-dgl2Hf nCP5yc AjY5Oe DuMIQc LQeN7 qIypjc TrZEUc lw1w4b']"
в ../../global-setup.ts:15
13 | await page.locator( 14 | "button[class='VfPpkd-LgbsSe VfPpkd-LgbsSe-OWXEXe-k8QpJ VfPpkd-LgbsSe-OWXEXe-dgl2Hf nCP5yc AjY5Oe DuMIQc LQeN7 qIypjc TrZEUc lw1w4b']",
15 | ).щелчок() | ^
Тайм-аут — это шаг непосредственно перед вводом пароля. Я запускаю тесты с помощью этой команды:
yarn playwright test login-page-tests --headed
Я делаю что-то неправильно?





Я бы не стал рассчитывать на эти имена классов входа в Google. Вы пытались запустить что-то вроде:
await page.locator('text = "Next"').click()
Да, это было так, по какой-то причине при работе с головой и без головы страница Google, на которую меня отправили, немного отличалась.
Я столкнулся с похожей проблемой. Я также не могу войти через Google Auth с Chromium (у меня это работает в других браузерах. В Chromium я получаю сообщение «подтвердите, что это вы»). У вас работала обычная авторизация через google, используя Chromium?