开一个_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 中打开。除非你真的下定决心按原样进行测试。
我正在测试两个相互 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 中打开。除非你真的下定决心按原样进行测试。