开一个_blanklink继续用Playwright测试

Open a _blank link and continue the test with Playwright

我正在测试两个相互 linked 的网站。我从第一个网站开始,那里有一个 link (_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();
});

所以我点击按钮,一个新的选项卡打开。然后我想从那里继续。 相反,我收到错误:

Timeout of 30000ms exceeded. context.waitForEvent('page')

我也像在文档中那样尝试过,也没有让它工作: https://playwright.dev/docs/pages

我会删除元素上的 target=_blank 属性,然后单击它。

await page.$eval("a.browser-button", el => el.removeAttribute("target"))

然后点击它,它会在相同的 window 中打开。除非你真的下定决心按原样进行测试。