通常,问题是相反的,如何使Firefox在后台运行。一段时间以前,我已经用Selenide编写了一些基本测试,但是今天当我试图(照常)在服务器上运行它时,出现错误
[(1, 'a', 'x'), (3, 'a', 'z'), (2, 'b', 'y'), (4, 'c', 'xyz')]
我开始寻找结果,我注意到,当我现在在我的计算机上进行本地测试时,没有出现Firefox。我可以在“任务管理器”中看到Firefox的任务,截屏完成时出现错误,但浏览器无法打开。
我注意到关于如何使用无头选项运行测试存在很多问题,但是我需要相反的东西,这可能是SessionNotCreatedException
的问题,服务器看不到浏览器。
据我所知,Selenide运行着最新的壁虎驱动程序(正在更新)。我一开始尝试设置一些选项:
SessionNotCreatedException
并将Selenide更新为5.0.0,但仍然失败
编辑:我不能使用任何其他浏览器
答案 0 :(得分:1)
对于通常在服务器上运行测试,该服务器是X窗口系统,因此执行此操作的方法是运行虚拟显示器。
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上不起作用。
希望这对您有帮助!