Selenium Firefox在Selenide的后台运行

Selenium Firefox在Selenide的后台运行,selenium,gecko,selenide,Selenium,Gecko,Selenide,通常,问题是相反的,如何让Firefox在后台运行。不久前,我已经用Selenide编写了一些基本测试,但今天我尝试在服务器上运行它(像往常一样),我遇到了一个错误 SessionNotCreatedException 我开始寻找结果,我注意到,当我现在从我的计算机本地运行测试时,Firefox不会出现。我可以在任务管理器中看到Firefox的任务,我在完成屏幕截图时出错,但浏览器没有打开 我注意到有很多关于如何使用headless选项运行测试的问题,但我需要相反的东西,这可能是Session

通常,问题是相反的,如何让Firefox在后台运行。不久前,我已经用Selenide编写了一些基本测试,但今天我尝试在服务器上运行它(像往常一样),我遇到了一个错误

SessionNotCreatedException
我开始寻找结果,我注意到,当我现在从我的计算机本地运行测试时,Firefox不会出现。我可以在任务管理器中看到Firefox的任务,我在完成屏幕截图时出错,但浏览器没有打开

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

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

    FirefoxOptions options = new FirefoxOptions();
    options.setCapability("marionette", false);
    options.setCapability("headless", false);
还将Selenide更新为5.0.0,但仍然失败


编辑:我不能使用任何其他浏览器在服务器上运行测试一般来说,服务器是一个X窗口系统,所以这样做的方法是运行虚拟显示

使用是最好的方法!你可以读到它

或者您可以使用
PyVirtualDisplay

注意

确保您的服务器是X窗口系统

正如您所看到的,它在windows上不起作用


希望这对你有帮助from xvfbwrapper import Xvfb with Xvfb() as xvfb: # launch virtual display here. # start your webdrivr in the virtual display
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()