【问题标题】:How to prevent the browser from closing while running code in Playwright Tests in Javascript在 Javascript 的 Playwright 测试中运行代码时如何防止浏览器关闭
【发布时间】:2022-12-15 21:16:47
【问题描述】:

我正在尝试在浏览器中记录网络调用。对于我的用例,我要求浏览器处于打开状态并且应该只使用脚本关闭。我目前正在使用 page.pause() 函数来防止浏览器自动关闭。有没有其他方法可以防止浏览器自动关闭。

test('Verify home page Load event',async({page})=>{
//const browser = await chromium.launchPersistentContext("",{headless:false});
await page.goto("https://samplesite.com")


await page.on('request',req=>{
    const requestUrl = req.url();
    if(requestUrl.indexOf("google-analytics.com/collect")>-1){
        console.log("Intercepted:->"+requestUrl);
        
    }else{            
        req.continue
    }        
}) 

await page.pause();

})

我尝试查看此 [链接] (How to keep browser opening by the end of the code running with playwright-python?) 的 python,但无法将其应用于 JS。

【问题讨论】:

    标签: javascript node.js ui-automation playwright


    【解决方案1】:

    与 python 问题的答案中描述的类似,您需要以某种方式使脚本保持活动状态。 answer 描述了几种方法。

    然而,page.pause() 绝对是推荐的方法 - 它恰恰适用于您需要在脚本执行时检查浏览器的这种情况。你的脚本也有一些问题——当你遇到你的目标请求时,你正在记录一些东西但没有调用request.continue()(注意这是一个方法,不是财产)。这将导致所有请求无限期挂起,直到它继续或中止。

    你可能想做这样的事情:

    await page.route('**/*', (route, request) => {
        const rurl = request.url();
        if (rurl.includes('google-analytics.com/collect')) {
            console.log(`Intercepted request to ${rurl}`);
            // Do other stuff?
        }
        route.continue();
    });
    

    目前还不清楚你想从你的 sn-p 中完成什么——如果你只需要等待一个特定的请求被触发,你可以使用: page.waitForRequestpage.waitForResponse,无需担心保持浏览器打开。

    【讨论】:

      【解决方案2】:

      你可以试试await Task.Delay(-1)

      【讨论】:

        【解决方案3】:

        我尝试使用 await page.pause() 但它对我不起作用,但我发现了一种棘手的方法,而且效果很好,只需放在测试结束时:

        await new Promise(() => {})
        

        参考link

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-03-14
          • 2018-02-06
          • 2010-09-24
          • 1970-01-01
          • 2020-01-10
          • 2021-04-24
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多