我知道这有点违背 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 。
您还需要做一些额外的配置。基本上:
- 选中“发现网络目标”复选框
- 点击“配置...”
- 将链接“localhost:9222”添加到服务器列表
关于python - 可以打开/显示/呈现 headless (headless) Selenium session 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48467961/