2

我的测试正在按预期工作和运行PyVirtualDisplay==0.2.1,但我对这个包的最新版本有问题(例如,PyVirtualDisplay==0.2.5)。

我的代码片段:

...
    def _set_up(self):

        # Creation of instance of the browser.
        self.display = Display(visible=0, size=(config.WIDTH, config.HEIGHT))
        self.display.start()
        desired = self.get_desired_capabilities(config.BROWSER)
        self.driver = webdriver.Remote(command_executor=config.ACTIVE_NODE,
                                       desired_capabilities=desired)
        # Maximize window size.
        self.driver.set_window_size(config.WIDTH, config.HEIGHT)
...

错误信息:

错误回溯(最后一次调用):文件“/usr/local/Cellar/python/3.7.6/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py”,第 59 行,在 testPartExecutor 产生文件“/usr/local/Cellar/python/3.7.6/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py”,第 624 行,运行 self.setUp( ) 文件“/Users/ratmirasanov/Documents/testing/welcome_widget/test_welcome_widget.py”,第 24 行,在 setUp self._set_up() 文件“/Users/ratmirasanov/Documents/testing/utilities.py”,第 41 行,在 _set_up self.display.start() 文件“/Users/ratmirasanov/Documents/testing/venv/lib/python3.7/site-packages/pyvirtualdisplay/abstractdisplay.py”,第 171 行,开始引发 XStartTimeoutError(msg % d) pyvirtualdisplay .抽象显示。XStartTimeoutError:无法在显示“:1001”上启动 X(xdpyinfo 检查失败)。

我没有找到任何有效的解决方案来解决这个问题。任何帮助将不胜感激。谢谢。

UPD:该PyVirtualDisplay==0.2.5软件包在 Ubuntu 18.04.3 LTS 上按预期工作。

程序位于何处xdpyindo/usr/bin/xdpyinfo.

问题出在我的安装了 XQuartz ( https://www.xquartz.org/index.html ) 的 Mac (macOS Catalina 10.15.2) 上(xdpyindo程序位于/opt/X11/bin/xdpyinfo文件夹中)。

4

2 回答 2

8

作为一种解决方法,可以在 Mac 上删除“xdpyinfo”程序。

这是 GitHub 上项目存储库中已创建问题的讨论:https ://github.com/ponty/PyVirtualDisplay/issues/42

UPD:实际上,这是一个权限问题。执行以下操作后可以修复它(不删除'xdpyinfo'程序):

mkdir /tmp/.X11-unix 
sudo chmod 1777 /tmp/.X11-unix 
sudo chown root /tmp/.X11-unix/

希望它可以帮助某人。

于 2020-01-14T22:26:56.393 回答
0

我的测试使用 PyVirtualDisplay==0.2.1 按预期工作和运行

您的显示器启动时间超过 10 秒。这个约束在旧版本的 PyVirtualDisplay 中不存在。

解释:

从 version 开始0.2.2,PyVirtualDisplay 依赖于xdpyinfo程序来确定 X 服务器是否在给定超时的情况下运行。它只尝试启动显示 10 秒,然后引发XStartTimeoutError.

https://github.com/ponty/PyVirtualDisplay/commit/3b11cf1e1381921c047ba18f4c5d929847f23b84

于 2019-12-30T14:46:26.990 回答