python - 可以打开/显示/呈现 headless (headless) Selenium session 吗?

标签 python selenium headless browser-automation

我知道这有点违背 headless (headless)自动化的目的,但是......

我在 headless (headless)模式下使用 Selenium 和 Chromedriver 运行了一个自动化测试。我宁愿让它 headless (headless)地运行,但偶尔,它会遇到一个真正需要查看和交互的错误。是否可以渲染 headless (headless) session 并与之交互?也许通过在非 headless (headless)浏览器中复制 headless (headless)浏览器?我可以通过远程调试进行连接,但开发工具似乎不允许我查看呈现的页面或与任何东西交互。

我可以截屏,这很有帮助。但我真的在寻找交互的能力——有一些拖放元素不能很好地与 Selenium 一起工作,偶尔会导致问题。

最佳答案

实际上,这是可能的。

您可以使用 ChromeOptions 中的“--remote-debugging-port”参数查看 headless (headless)浏览器。例如,

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--remote-debugging-port=9222') # Recommended is 9222
driver = webdriver.Chrome(options=chrome_options)

然后当 Selenium 运行时,您可以在常规浏览器中转到 http://localhost:9222 以查看 headless (headless) session 。您的浏览器将显示指向 Chrome 打开的每个选项卡的链接,并且您可以通过单击链接查看每个页面/与之交互。您还可以在 Selenium 运行测试时监控 Selenium/Chrome。

编辑:从 Chrome 100 左右开始,您现在需要转到链接 chrome://inspect 以在 Selenium 运行时在浏览器中查看 headless (headless) session 。

您还需要做一些额外的配置。基本上:

  1. 选中“发现网络目标”复选框
  2. 点击“配置...”
  3. 将链接“localhost:9222”添加到服务器列表

关于python - 可以打开/显示/呈现 headless (headless) Selenium session 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48467961/

相关文章:

python - 如何在机器人框架中获取错误信息?

java - 当测试类作为 'TestNG Test' 运行时,无法从 testng.xml 检索参数值

eclipse - Selenium Webdriver 关于 destroyHarder 的错误

python - 如何让 Python、QT 和 Webkit 在 headless (headless)服务器上工作?

linux - 从服务器远程连接到 Dropbox 服务

python - timeit 与计时装饰器

python - 使用 CSS 更改 QDocketWidget 悬停标题栏颜色

python - Pandas 以绝对最大值重新采样

linux - 如何将 headless (headless)窗口浏览器从远程服务器传输到我的本地计算机?

python - 如何导入 Python 命名空间包的所有子模块?