Windows 上的 Xvfb
Posted
技术标签:
【中文标题】Windows 上的 Xvfb【英文标题】:Xvfb on Windows 【发布时间】:2017-04-27 05:20:20 【问题描述】:我正在使用 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。 ***.com/questions/21063833/…。寻找替代品。 谁能给我一个在 Windows 中无头运行 Firefox 的替代方案? Selenium running headless Firefox browser in Windows的可能重复 【参考方案1】:你不能在 Windows 上使用 pyvirtualdisplay。
它只是一个调用 Xvfb 的包装器。 Xvfb 是 X Window 系统的无头显示服务器。 Windows 不使用 X Window 系统。
【讨论】:
您知道 Windows 的替代方案吗?【参考方案2】:对于 Windows 用户,您可以使用免费的 VNC 实用程序。例如,如果您正在运行 docker,您可以分 3 步完成:
-
运行具有独立 firefox 服务器的 docker 映像(为 VNC 公开端口 5900)
$ docker run -d -p 4444:4444 -p 5990:5990 selenium/standalone-firefox-debug
-
打开VNC并连接到那个主机
localhost:5990
,密码是'secret'
-
现在只需执行您的 selenium 脚本,您就会在 VNC 窗口中实时看到正在发生的事情。只需确保脚本指向您的 docker 独立服务器,例如
localhost:4444/wd/hub
即可使其正常工作
【讨论】:
以上是关于Windows 上的 Xvfb的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Windows 10 上的容器连接到 docker 主机(Docker for Windows)
Windows 上的 WaitOnAddress() 在 Linux 上的完全等价物是啥?