首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Firefox在Selenide的后台运行

Firefox在Selenide的后台运行
EN

Stack Overflow用户
提问于 2018-10-16 11:41:35
回答 1查看 400关注 0票数 1

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

代码语言:javascript
复制
SessionNotCreatedException

我开始寻找结果,并注意到,当我现在运行本地测试从我的计算机,火狐没有出现。我可以在任务管理器中看到Firefox的任务,我在完成的屏幕截图中发现了一个错误,但是浏览器没有打开。

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

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

代码语言:javascript
复制
    FirefoxOptions options = new FirefoxOptions();
    options.setCapability("marionette", false);
    options.setCapability("headless", false);

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-16 13:16:23

通常,对于在服务器上运行测试,服务器是一个X窗口系统,因此运行虚拟显示是一种方法。

使用Xvfb是最好的方法!你可以读到它,这里

代码语言:javascript
复制
from xvfbwrapper import Xvfb

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

或者你可以使用PyVirtualDisplay 链接在这里

代码语言:javascript
复制
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上不工作。

希望这对你有帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52834675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档