设置headless=False无效时,如何开启Playwright的有头模式?
问题背景
我正尝试在Python中启动Playwright的有头模式。尽管设置了headless=False,我仍然无法启动浏览器。
现有代码
from playwright.sync_api import sync_playwright with sync_playwright() as p: browser = p.chromium.launch(headless=False, slow_mo=100) page = browser.new_page() page.goto("https://www.google.com/")
输出结果
[Done] exited with code=0 in 0.686 seconds
已尝试的调试方法
- 在终端执行
$env:HEADED=1 - 在终端执行
$env:PWDEBUG=1 - 用firefox和webkit替代chromium
- 改用Pycharm而非Microsoft Visual Studio Code
解决方案
- 阻止浏览器自动关闭:当前代码执行完
page.goto后,with块会立即结束,Playwright会自动销毁浏览器实例,导致你看不到窗口。可以在代码末尾添加阻塞逻辑,让浏览器保持打开:
from playwright.sync_api import sync_playwright with sync_playwright() as p: browser = p.chromium.launch(headless=False, slow_mo=100) page = browser.new_page() page.goto("https://www.google.com/") input("按回车键关闭浏览器...") # 新增该行,阻止进程结束 browser.close()
重新安装对应浏览器:执行
playwright install chromium命令,确保Playwright绑定的Chromium版本完整安装,避免因浏览器文件缺失或损坏导致有头模式无法启动。手动指定浏览器路径:如果系统默认的Chromium环境有问题,可以直接指定本地已安装的Chrome/Edge可执行文件路径:
browser = p.chromium.launch( headless=False, slow_mo=100, executable_path="C:/Program Files/Google/Chrome/Application/chrome.exe" # Windows示例路径,根据实际情况修改 )
- 开启日志排查错误:启动浏览器时添加日志输出,查看是否有隐藏的启动失败信息:
browser = p.chromium.launch( headless=False, slow_mo=100, verbose=True, logger=lambda *args: print(args) )
内容的提问来源于stack exchange,提问作者peters2k14
相关产品推荐
相关产品推荐

