Я тестирую два веб-сайта, которые связаны друг с другом. Я начинаю с первого сайта, где есть ссылка (_blank) на второй сайт. И я хочу продолжить свой тест на этой вкладке.
test('test', async ({ page }) => {
const browser = await chromium.launch();
const context = await browser.newContext();
await page.goto('https://example.io/');
const [newPage] = await Promise.all([
context.waitForEvent('page'),
page.locator('a.browser-button').first().click() // Opens tab
])
await newPage.waitForLoadState();
console.log(await newPage.title());
await page.screenshot({ path: 'test.png', fullPage: true });
await browser.close();
});
Итак, я нажимаю на кнопку, открывается новая вкладка. И затем я хочу продолжить оттуда. Вместо этого я получаю сообщение об ошибке:
Превышено время ожидания 30000 мс. context.waitForEvent('страница')
Я пробовал, как и в документации, тоже не заработал:
https://playwright.dev/docs/pages
Решение проблемы
Я бы удалил target=_blankатрибут элемента, а затем щелкнул его.
await page.$eval("a.browser-button", el => el.removeAttribute("target"))
Затем нажмите на нее, и она откроется в том же окне. Если вы действительно не настроены проверить это как есть.
Комментариев нет:
Отправить комментарий