通常情况下,问题是相反的,如何让火狐运行在后台。不久前,我用Selenide编写了一些基本测试,但是当今天我试图(像往常一样)在服务器上运行它时,我遇到了一个错误。
SessionNotCreatedException我开始寻找结果,并注意到,当我现在运行本地测试从我的计算机,火狐没有出现。我可以在任务管理器中看到Firefox的任务,我在完成的屏幕截图中发现了一个错误,但是浏览器没有打开。
我注意到有很多关于如何使用无头选项运行测试的问题,但是我需要一些相反的东西,这可能是SessionNotCreatedException的一个问题,服务器没有看到浏览器。
据我所知,Selenide运行最新的壁虎驱动程序(它正在更新)。一开始我试着设置一些选项:
FirefoxOptions options = new FirefoxOptions();
options.setCapability("marionette", false);
options.setCapability("headless", false);还将Selenide更新为5.0.0,但仍然失败
编辑:我不能使用任何其他浏览器
发布于 2018-10-16 13:16:23
通常,对于在服务器上运行测试,服务器是一个X窗口系统,因此运行虚拟显示是一种方法。
使用Xvfb是最好的方法!你可以读到它,这里。
from xvfbwrapper import Xvfb
with Xvfb() as xvfb:
# launch virtual display here.
# start your webdrivr in the virtual display或者你可以使用PyVirtualDisplay 链接在这里。
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()Note
确保您的服务器是一个X窗口系统!
正如您所看到的,这里在windows上不工作。
希望这对你有帮助!
https://stackoverflow.com/questions/52834675
复制相似问题