Firefox在Selenide中在后台运行

时间:2018-10-16 11:41:36

标签: selenium gecko selenide

通常,问题是相反的,如何使Firefox在后台运行。一段时间以前,我已经用Selenide编写了一些基本测试,但是今天当我试图(照常)在服务器上运行它时,出现错误

[(1, 'a', 'x'), (3, 'a', 'z'), (2, 'b', 'y'), (4, 'c', 'xyz')]

我开始寻找结果,我注意到,当我现在在我的计算机上进行本地测试时,没有出现Firefox。我可以在“任务管理器”中看到Firefox的任务,截屏完成时出现错误,但浏览器无法打开。

我注意到关于如何使用无头选项运行测试存在很多问题,但是我需要相反的东西,这可能是SessionNotCreatedException 的问题,服务器看不到浏览器。

据我所知,Selenide运行着最新的壁虎驱动程序(正在更新)。我一开始尝试设置一些选项:

SessionNotCreatedException

并将Selenide更新为5.0.0,但仍然失败

编辑:我不能使用任何其他浏览器

1 个答案:

答案 0 :(得分:1)

对于通常在服务器上运行测试,该服务器是X窗口系统,因此执行此操作的方法是运行虚拟显示器。

使用Xvfb是最好的方法!您可以here来了解它。

from xvfbwrapper import Xvfb

with Xvfb() as xvfb:
    # launch virtual display here.
    # start your webdrivr in the virtual display

或者您可以使用PyVirtualDisplay link here

from pyvirtualdisplay import Display
from selenium import webdriver

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

# now Firefox will run in a virtual display. 
# you will not see the browser.
browser = webdriver.Firefox()
browser.get('http://www.google.com')
print browser.title
browser.quit()

display.stop()

注意

确保您的服务器是X Window系统!

您可以看到here在Windows上不起作用。

希望这对您有帮助!