在Windows上使用Xvfb

11

我正在使用pyvirtualdisplay来运行一个无界面的Firefox浏览器测试。这是我正在使用的代码:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from pyvirtualdisplay import Display

display= Display(visible=0, size=(320, 240)).start()  # visible=0
display.start()
driver = webdriver.Firefox()
driver.get("https://google.com")

display.quit()

我获得的回溯信息如下:

easyprocess.EasyProcessCheckInstalledError: cmd=['Xvfb','-help']

似乎在Windows上没有对Xvfb的支持。https://dev59.com/YXvaa4cB1Zd3GeqPADBu。寻找替代方案。 - Naveen Kumar R B
请问有没有人可以给我一个在Windows上运行Firefox无头模式的替代方案? - Ralk
2个回答

11

在Windows上无法使用pyvirtualdisplay。

它只是一个调用Xvfb的包装器。 Xvfb是X Window System的无头显示服务器。Windows不使用X Window System


23
你知道有没有适用于Windows的替代方案吗? - HenryM

2
对于Windows用户,您可以使用免费的VNC实用程序。例如,如果您正在运行Docker,则可以按照以下3个步骤进行操作:
1. 运行一个具有独立Firefox服务器(端口5900暴露给VNC)的Docker镜像
    $ docker run -d -p 4444:4444 -p 5990:5990 selenium/standalone-firefox-debug
  1. 打开VNC并连接到主机localhost:5990,密码是'secret'

enter image description here

现在只需执行您的Selenium脚本,您将实时在VNC窗口中看到正在发生的事情。只需确保脚本指向您的Docker独立服务器,例如localhost:4444/wd/hub,以使其正常工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接