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“任务栏”上的内容为

在Windows 上的 Python

如何从 Windows 10 上的容器连接到 docker 主机(Docker for Windows)

Windows 上的 WaitOnAddress() 在 Linux 上的完全等价物是啥?

为啥 Windows 上的 IE/Chrome 不支持端口 27977 上的 SOCKS5 代理? [关闭]

有啥方法可以从 Windows 7 上的 Windows 服务启动 GUI 应用程序?