selenium2支持无界面操作(HtmlUnit和PhantomJs)

selenium2支持通过各种driver(FirfoxDriver,IternetExplorerDriver,OperaDriver,ChromeDriver)驱动真实浏览器完成测试的。

其实selenium也是支持无界面浏览器操作的。比如说HtmlUnit和PhantomJs。他们都不是真正的浏览器,运行时不会渲染页面显示内容,但是支持页面元素查找,js的执行等;由于不进行css和gui渲染,运行效率要比真实的浏览器要快很多。

1.htmlUnit是java实现的类浏览器程序,包含在selenium server中,无须驱动,直接实例化就行。

用法如下:

WebDriver driver = new HtmlUnitDriver();//

WebDriver driver = new HtmlUnitDriver(true);//支持js

2.PhantomJS 是一个基于 WebKit(WebKit是一个开源的浏览器引擎,Chrome,Safari就是用的这个浏览器引擎) 的服务器端 JavaScript API,主要应用场景是:无需浏览器的 Web 测试,页面访问自动化,屏幕捕获,网络监控

用法如下:

WebDriver driver = new PhantomJSDriver();

3.为了看以上两个无界面浏览器是否适合当前项目组前端自动化,做了一些预研,结果如下:

行为描述  行为 HtmlUnitDriver HtmlUnitDriver(true) PhantomJSDriver FirefoxDriver
文本框input 输入文本 yes yes yes yes
按钮button 点击按钮 yes yes yes yes
超链接a 点击 yes yes  no yes
下拉列表select 选择选项 yes yes  yes yes
复选框checkbox 点击 yes yes  yes yes
Alert(显示带有一条指定消息和一个 OK 按钮的警告框) 点击 no no  no yes
Promprt(显示可提示用户进行输入的对话框) 点击 no no  no  yes

最终的预研结果是不适合我们的系统,因为我们的系统中有很多Alert

4.总结HtmlUnitDriver,PhantomJS与真实浏览器驱动的优缺点比较

driver类型 优点 缺点 应用
真实浏览器driver 真实模拟用户行为 效率、稳定性低 浏览器兼容性测试
HtmlUnit 速度快 js引擎(Rhinojs)不是主流的浏览器支持的,故对js支持的不够好 包含少量js的页面测试
PhantomJS 速度中等、模拟行为接近真实 不能模拟不同/特定浏览器的行为 非GUI的功能性测试

总结:

如果你要测试的页面js不是很多,并且不需要做兼容性测试的话,HtmlUnitDriver无遗是最好的选择

如果你需要做兼容性测试的话,还是应该选择真实的浏览器driver(如果你想提高自动化运行速率,可以考虑用testng,selenium grid并行测试)

时间: 2024-12-09 09:26:48

selenium2支持无界面操作(HtmlUnit和PhantomJs)的相关文章

selenium无界面操作浏览器与Chrome Options的启动项设置

from selenium import webdriver from selenium.webdriver.chrome.options import Options #实例化一个启动参数对象 chrome_options = Options() #配置启动项 chrome_options.add_argument('--headless')#设置无界面模式运行浏览器 chrome_options.add_argument('--start-maximized')#设置启动浏览器时窗口最大化运

selenium phantomjs java无界面浏览器环境搭建

java selenium搭建无界面浏览器 1.http://phantomjs.org/ 下载windows版phantomjs 2.解压后bin目录下会有exe文件 3.测试代码: package se; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.phantomjs.PhantomJSDriver; pub

Robot Framework使用Phantomjs进行无界面UI自动化测试

Robot Framework 是一款关键字驱动的验收自动化测试框架,现在在国内使用的越来越广泛了.一种通用的Web UI自动化测试解决方案是Robot Framework+Selenium2Library (RFS).一般要使用Selenium2Library库,必须配置好浏览器驱动(driver).不然就无法驱动浏览器来执行自动化命令. 浏览器驱动对应表 上表简要说明了不同的浏览器所需要的驱动程序.这里我们重点介绍如何基于rfs+phantomjs进行无界面UI自动化测试. phantomj

Chrome开启无界面浏览模式Python+Windows环境

环境:Python 3.5.x + Selenium 3.4.3 + Chromedriver 2.30 + Chrome 60 beta版 + WIN7/WIN10 chrome_options = webdriver.ChromeOptions() chrome_options.add_argument('--headless') driver = webdriver.Chrome(chrome_options=chrome_options) 代码很简单,只是环境要强调说明一下,Chrome

selenium(六)Headless Chrome/Firefox--PhantomJS停止支持后,使用无界面模式。

简介: 以前都用PhantomJS来进行无界面模式的自动化测试,或者爬取某些动态页面. 但是最近selenium更新以后,'Selenium support for PhantomJS has been deprecated, please use headless '提示不支持PhantomJs,请使用headless模式. 好吧,我们还是继续使用firefox chrome的headless模式吧. 一:版本确认 1.windows下 selenium  3.9.0 我使用这个版本的sele

chromedriver设置无界面模式 selenium基础操作

chromedriver设置无界面模式 from selenium import webdriver options = webdriver.ChromeOptions() # 添加无界面参数 options.add_argument('--headless') browser = webdriver.Chrome(options=options) browser.get('http://www.baidu.com/') browser.save_screenshot('baidu.png')

DataUml Design 介绍11 - DataUML 1.5版本功能(支持无Oracle客户端连接,有图有真相)

DataUML Design1.5版本主要更新内容包括: 1.优化数据库登录界面: 2.查询分析器智能提示: 3.优化数据库浏览插件,数据库登录组件,支持历史记录缓存: 4.支持无Oracle客户端连接: 5.支持浏览数据库视图.存储过程.函数和触发器: 6.支持从Excel文件导入数据生成模型: 7.优化组合软件新建功能的界面: 一.新建功能的界面 集成成有插件的新建功能,类似于VS编译器,所有插件新建功能统一入口.如下图 二.数据库连接界面,支持无Oracle客户端连接 1.优化数据库登录界

DataUML Design - 支持无Oracle客户端连接,UML建模

DataUML Design1.5版本主要更新内容包括: 1.优化数据库登录界面: 2.查询分析器智能提示: 3.优化数据库浏览插件,数据库登录组件,支持历史记录缓存: 4.支持无Oracle客户端连接: 5.支持浏览数据库视图.存储过程.函数和触发器: 6.支持从Excel文件导入数据生成模型: 7.优化组合软件新建功能的界面: 一.新建功能的界面 集成成有插件的新建功能,类似于VS编译器,所有插件新建功能统一入口.如下图 二.数据库连接界面,支持无Oracle客户端连接 1.优化数据库登录界

centos 无界面 服务器 安装chrome部署chromedriver

转:https://blog.csdn.net/u013849486/article/details/79466359 基本 做完了,要弄进docker里面去了的时候,才搜到 docker-chromium 基础镜像,和前辈走过的路,也许这样更方便吧,而且生产环境 就是linux-centos所以 不如一直在Linux或者docker里开发,我一直在mac里开发,所以迈过了很多坑- http://blog.csdn.net/littlebrain4solving/article/details/