一、背景:
Selenium是一个web自动化测试框架,也支持从HTML页面上爬取javascript生成的或AJAX的内容。
selenium2支持通过各种driver(FirfoxDriver、IternetExplorerDriver、OperaDriver、ChromeDriver)驱动真实浏览器完成测试的。
selenium也是支持无界面浏览器操作的,如集成HtmlUnit和PhantomJs,不是真正的浏览器,运行时不会渲染页面显示内容,但是支持页面元素查找、动态js执行等;由于不进行css和gui渲染,运行效率要比真实的浏览器快。
现在的问题是在windows+eclipse环境下java开发(通过driver驱动的)的程序如何部署到命令行centos下运行selenium呢?
二、选型:
对selenium2支持浏览器driver、htmlunit、phantomJs三种进行比较:
1)selenium2集成htmlUnit
htmlUnit是java实现的类浏览器程序,包含在selenium server中,无须驱动,直接实例化就行。
用法如下:
WebDriver driver = new HtmlUnitDriver();//
WebDriver driver = new HtmlUnitDriver(true);//支持js
htmlUnit速度快,但对js支持不是很好,适合相对静态的页面爬取。
2)selenium2集成phantomJs
速度一般、模拟行为接近真实,但不能模拟不同/特定浏览器的行为,如鼠标点击操作,适合非GUI功能性自动测试。
使用phantomJS配合selenium,可以创建无界面的浏览器。
但发现似乎只支持Python语言,Java语言没有phantomJs实例,只能放弃。
3)真实浏览器driver
可真实模拟用户行为,但效率、稳定性低,但支持特定浏览器行为,适合GUI功能测试。
笔者在开发情况,是选择真实浏览器驱动,支持的比较完整,但要部署到命令行centos下时就需要找解决方案了。
Headless
Selenium是一个web自动化测试框架,也支持从HTML页面上爬取javascript生成的或AJAX的内容。
selenium2支持通过各种driver(FirfoxDriver、IternetExplorerDriver、OperaDriver、ChromeDriver)驱动真实浏览器完成测试的。
selenium也是支持无界面浏览器操作的,如集成HtmlUnit和PhantomJs,不是真正的浏览器,运行时不会渲染页面显示内容,但是支持页面元素查找、动态js执行等;由于不进行css和gui渲染,运行效率要比真实的浏览器快。
现在的问题是在windows+eclipse环境下java开发(通过driver驱动的)的程序如何部署到命令行centos下运行selenium呢?
二、选型:
对selenium2支持浏览器driver、htmlunit、phantomJs三种进行比较:
1)selenium2集成htmlUnit
htmlUnit是java实现的类浏览器程序,包含在selenium server中,无须驱动,直接实例化就行。
用法如下:
WebDriver driver = new HtmlUnitDriver();//
WebDriver driver = new HtmlUnitDriver(true);//支持js
htmlUnit速度快,但对js支持不是很好,适合相对静态的页面爬取。
2)selenium2集成phantomJs
速度一般、模拟行为接近真实,但不能模拟不同/特定浏览器的行为,如鼠标点击操作,适合非GUI功能性自动测试。
使用phantomJS配合selenium,可以创建无界面的浏览器。
但发现似乎只支持Python语言,Java语言没有phantomJs实例,只能放弃。
3)真实浏览器driver
可真实模拟用户行为,但效率、稳定性低,但支持特定浏览器行为,适合GUI功能测试。
笔者在开发情况,是选择真实浏览器驱动,支持的比较完整,但要部署到命令行centos下时就需要找解决方案了。
Headless