我有 PyVirtualDisplay==0.2.5 包的问题,用于 运行 测试使用虚拟显示器(无头模式)
I have the problem with PyVirtualDisplay==0.2.5 package for running tests with usage of virtual displays (headless mode)
我的测试正常,运行 与 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)
...
错误信息:
Error Traceback (most recent call last): File
"/usr/local/Cellar/python/3.7.6/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py",
line 59, in testPartExecutor
yield File "/usr/local/Cellar/python/3.7.6/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py",
line 624, in run
self.setUp() File "/Users/ratmirasanov/Documents/testing/welcome_widget/test_welcome_widget.py",
line 24, in setUp
self._set_up() File "/Users/ratmirasanov/Documents/testing/utilities.py", line 41, in
_set_up
self.display.start() File "/Users/ratmirasanov/Documents/testing/venv/lib/python3.7/site-packages/pyvirtualdisplay/abstractdisplay.py",
line 171, in start
raise XStartTimeoutError(msg % d) pyvirtualdisplay.abstractdisplay.XStartTimeoutError: Failed to start X
on display ":1001" (xdpyinfo check failed).
我没有找到解决此问题的有效解决方案。任何帮助将不胜感激。谢谢。
UPD:PyVirtualDisplay==0.2.5
软件包在 Ubuntu 18.04.3 LTS 上按预期工作。
xdpyindo
程序位于何处:/usr/bin/xdpyinfo
。
问题出在我的 Mac (macOS Catalina 10.15.2) 上,安装了 XQuartz (https://www.xquartz.org/index.html)(xdpyindo
程序位于 /opt/X11/bin/xdpyinfo
文件夹中)。
My tests are working and running as expected with PyVirtualDisplay==0.2.1
您的显示启动时间超过 10 秒。此约束在旧版本的 PyVirtualDisplay 中不存在。
解释:
从版本 0.2.2
开始,PyVirtualDisplay 依赖 xdpyinfo
程序来确定 X 服务器是否 运行 给定超时。它只尝试启动显示 10 秒,然后引发 XStartTimeoutError
.
https://github.com/ponty/PyVirtualDisplay/commit/3b11cf1e1381921c047ba18f4c5d929847f23b84
作为解决方法 'xdpyinfo' 程序可以在 Mac 上删除。
这是 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/
希望对大家有所帮助。
我的测试正常,运行 与 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)
...
错误信息:
Error Traceback (most recent call last): File "/usr/local/Cellar/python/3.7.6/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartExecutor yield File "/usr/local/Cellar/python/3.7.6/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 624, in run self.setUp() File "/Users/ratmirasanov/Documents/testing/welcome_widget/test_welcome_widget.py", line 24, in setUp self._set_up() File "/Users/ratmirasanov/Documents/testing/utilities.py", line 41, in _set_up self.display.start() File "/Users/ratmirasanov/Documents/testing/venv/lib/python3.7/site-packages/pyvirtualdisplay/abstractdisplay.py", line 171, in start raise XStartTimeoutError(msg % d) pyvirtualdisplay.abstractdisplay.XStartTimeoutError: Failed to start X on display ":1001" (xdpyinfo check failed).
我没有找到解决此问题的有效解决方案。任何帮助将不胜感激。谢谢。
UPD:PyVirtualDisplay==0.2.5
软件包在 Ubuntu 18.04.3 LTS 上按预期工作。
xdpyindo
程序位于何处:/usr/bin/xdpyinfo
。
问题出在我的 Mac (macOS Catalina 10.15.2) 上,安装了 XQuartz (https://www.xquartz.org/index.html)(xdpyindo
程序位于 /opt/X11/bin/xdpyinfo
文件夹中)。
My tests are working and running as expected with PyVirtualDisplay==0.2.1
您的显示启动时间超过 10 秒。此约束在旧版本的 PyVirtualDisplay 中不存在。
解释:
从版本 0.2.2
开始,PyVirtualDisplay 依赖 xdpyinfo
程序来确定 X 服务器是否 运行 给定超时。它只尝试启动显示 10 秒,然后引发 XStartTimeoutError
.
https://github.com/ponty/PyVirtualDisplay/commit/3b11cf1e1381921c047ba18f4c5d929847f23b84
作为解决方法 'xdpyinfo' 程序可以在 Mac 上删除。
这是 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/
希望对大家有所帮助。