如何在Playwright中不使用with上下文管理器启动并保持浏览器开启
解决Playwright保持浏览器开启的问题
你的代码里核心问题是最后一行的p.stop()——这个调用会直接终止Playwright的驱动进程,浏览器作为依赖进程会被强制关闭,哪怕你没有使用with语句。
修改后的代码(最佳实践)
from playwright.sync_api import sync_playwright # 启动Playwright引擎 p = sync_playwright().start() # 启动浏览器(无头模式关闭) browser = p.chromium.launch(headless=False) # 新建页面并跳转 page = browser.new_page() page.goto('https://www.google.com/') # 等待用户主动触发结束,替代time.sleep()的临时方案 input("按回车键关闭浏览器...") # 可选:手动清理资源(避免进程残留) browser.close() p.stop()
关键说明
- 移除提前调用的
p.stop(),让Playwright引擎保持运行状态,浏览器就不会被自动关闭 - 用
input()替代time.sleep():既可以让浏览器持续保持开启,又能让你主动控制关闭时机,比固定时长的休眠更灵活合理 - 最后手动调用
browser.close()和p.stop()是良好习惯,避免不必要的后台进程残留
内容的提问来源于stack exchange,提问作者python noobie
相关产品推荐
相关产品推荐

