我正在尝试在浏览器中记录网络调用。对于我的用例,我要求浏览器处于打开状态,并且只能使用脚本关闭。我目前正在使用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();
})
我试着为Python检查这个[链接](How to keep browser opening by the end of the code running with playwright-python?),但无法将其应用到JS。
3条答案
按热度按时间jljoyd4f1#
类似于python问题的答案中所描述的,你需要以某种方式保持脚本的活性,answer描述了几种方法。
但是,
page.pause()
绝对是推荐的方法-它正好适用于这样一种情况,即您需要在脚本执行时检查浏览器。您的脚本也有一些问题-当您遇到目标请求时,您记录了一些内容,但没有调用request.continue()
(注意这是一个方法,而不是属性)。这将导致所有请求无限期挂起,直到它被继续或中止。你可能想做这样的事情:
不清楚您试图从代码段中完成什么-如果您只需要等待特定请求触发,您可以使用以下任一方法:waitForRequest或page.waitForResponse,这样就不必担心浏览器是否保持打开状态。
hyrbngr72#
你可以试试
await Task.Delay(-1)
r1wp621o3#
我尝试使用
await page.pause()
,但它不适合我,但我发现了棘手的方法,它工作得很好,只是把在您的测试结束:link上的参考。