0

我有使用 django LiveServerTestCase、pyvirtualdisplay 和 Selenium 的测试。通常它们从 cron 运行,而我没有显示,所以我这样做:

cls.display = Display(visible=0, size=(800, 600))
cls.display.start()

哪个工作正常。但是在调试新测试时,我想从命令行运行并显示浏览器。我尝试了许多不同的方法,例如将可见设置为 1。但失败了:

WebDriverException:消息:'浏览器似乎在我们连接之前已经退出。输出为:错误:无法打开显示::1207\n'

我尝试注释掉这些行并得到:

WebDriverException:消息:'浏览器似乎在我们连接之前已经退出。输出为:错误:未指定显示\n'

我厌倦了用 xvfb-run 运行测试:

xvfb-run python manage.py test cdsem.W2WTestLive

像这样测试运行,但浏览器没有显示。我试过这个:

DISPLAY=:1 xvfb-run python manage.py test cdsem.W2WTestLive

仍然没有显示浏览器。我确实在谷歌上搜索并搜索过,这似乎是一个非常常见的问题,但没有一个答案对我有用。如何从命令行运行此测试并让浏览器可见?

4

1 回答 1

0

只是停止使用虚拟显示器?默认情况下,selenium 会在你的活动显示器上打开一个可见的浏览器......所以你可以直接入侵,比如:

if False:
    cls.display = Display(visible=0, size=(800, 600))
    cls.display.start()

当您在本地进行测试时...您可以使用环境变量或其他东西来获得更永久的解决方案...

于 2014-02-02T13:26:40.333 回答