javascript - 如何使用 Playwright 打开新标签(例如单击按钮在新标签中打开新部分)

标签 javascript node.js tabs webautomation playwright

我正在寻找针对当前情况的更简单的解决方案。例如,您打开 google(任何其他网站)并希望通过单击按钮(例如 Gmail) - 使用 Playwright 在新选项卡中打开此页面。

let browser, page, context;
describe('Check the main page view', function () {
    before(async () => {
        for (const browserType of ['chromium']) {
            browser = await playwright[browserType].launch({headless: false});
            context = await browser.newContext();
            page = await context.newPage();
            await page.goto(baseUrl);
        }
    });
    after(async function () {
        browser.close();
    });
    
        await page.click(tax);
        const taxPage = await page.getAttribute(taxAccount, 'href');

        const [newPage] = await Promise.all([
        context.waitForEvent('page'),
        page.evaluate((taxPage) => window.open(taxPage, '_blank'), taxPage)]);

        await newPage.waitForLoadState();
        console.log(await newPage.title());

最佳答案

it('Open a new tab', async function () {
     await page.click(button, { button: "middle" });
     await page.waitForTimeout(); //waitForNavigation and waitForLoadState do not work in this case
     let pages = await context.pages();
     expect(await pages[1].title()).equal('Title');

关于javascript - 如何使用 Playwright 打开新标签(例如单击按钮在新标签中打开新部分),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64277178/

相关文章:

javascript - 无法读取未定义的属性 'onRowClickHandler'

javascript - 使用 jquery 删除现有的 div 并在加载时附加到新的 div

node.js - e.preventDefault() 不是函数 NextJS/React

node.js - 将 Node.js 应用程序部署到 Heroku 的 Sequelize 凭据

google-chrome - 关闭 chrome 时清除本地存储(不是关闭特定选项卡时)?

css - 对齐选项卡标题中的长文本

javascript - 我需要帮助简化这个下拉功能

node.js - 确定 SQL 别名何时可以是开放名称

javascript - Keyup 功能不适用于 Tab 键(jQuery)

javascript - 在 javascript 中,为什么在重置函数原型(prototype)后也需要重置函数原型(prototype)构造函数?