Selenium是否支持无头浏览器测试?

kho*_*ter 70 selenium automated-tests unit-testing headless-browser selenium-webdriver

我现在正在看Selenium Server,我似乎没有注意到支持无头浏览器测试的驱动程序.

除非我弄错了,否则它不支持它.如果你在X上,你可以创建一个虚拟帧缓冲来隐藏浏览器窗口,但这不是一个真正的无头浏览器.

任何人都可以开导我吗?Selenium是否支持无头浏览器测试?

Mag*_*ova 18

你不需要使用PhantomJS作为Selenium的替代品.Selenium包含一个PhantomJS webdriver类,它位于GhostDriver平台上.只需将PhantomJS二进制文件安装到您的机器上即可.在python中,您可以使用:

from selenium import webdriver
dr = webdriver.PhantomJS() 
Run Code Online (Sandbox Code Playgroud)

瞧.

  • 不要使用PhantomJS,它不是很可靠.人们应该使用Xvfb来运行Chrome或Firefox. (4认同)
  • 更新:在Chrome 51的`--headless`标志下不再支持PhantomJS (3认同)

Aut*_*ter 15

WebDriver API支持HTMLUnit作为测试的浏览器.Ruby人一直在使用Capybara进行无头硒测试,所以它绝对可行.


小智 11

我知道这是一个老帖子.认为它会帮助正在寻找答案的其他人.

你可以使用XVFB在任何Linux发行版中安装一个完整的firefox.这可确保您的测试在真实的浏览器中执行.一旦你有无头设置,你可以使用你选择的webdriver来连接和运行测试.


Gen*_*eck 7

我注意到你说使用X framebuffer不是一个真正的无头解决方案,但是,对于大多数人来说,我认为这是可以接受的.除此之外,如果您对此作为解决方案感兴趣,此服务将帮助您实现这一目标.


Ros*_*son 6

无头浏览器是一个坏主意.它们可以为您提供一些测试,但不像真实用户会看到的那样,它们会掩盖许多只有真正的浏览器遇到的问题.在无头环境(例如,Windows或具有XVFB的Linux )上使用"头部"浏览器(除HTMLUnit之外的任何东西),你会更好.

  • 不,你想要持续集成,所以无头只是逻辑.为什么要掩盖问题呢?无头仅仅意味着没有使用图形设备. (16认同)