java web自动化测试_[Selenium自动化测试实战] 不打开浏览器如何进行WEB自动化测试

一、问题

在一般的使用场景下,使用selenium进行web自动化测试都需要打开一个浏览器的实体,测试脚本通过控制webdriver来对浏览器进行操作。但是在一些场景下测试工程师需要在不打开浏览器的情况下进行自动化测试,也就是以headless的方式运行自动化测试。

二、解决方法

业界有一些headless的第三方库可以使用,例如大名鼎鼎的PhantomJS。但是这些工具的安装很复杂,同时不一定保证持续的维护。
现在全球最受欢迎的浏览器Chrome在Chrome 59 (Chrome 60 for Windows)版本中已经支持了headless mode,只需要配置一些简单的参数就可以实现。

三、实例

首先要确认自己机子上的Chrome版本。

require 'selenium-webdriver' options = Selenium::WebDriver::Chrome::Options.new options.add_argument('--headless') options.add_argument('--disable-gpu') options.add_argument('--remote-debugging-port=9222') driver = Selenium::WebDriver.for :chrome, options: options driver.get "https://www.jd.com" driver.save_screenshot("#{File.dirname(__FILE__)}/#{Time.now.strftime("%F")}")

v2-3c40829a650f96ab57be6975d78f8601_b.jpg

通过在Selenium::WebDriver::Chrome::Options类的对象中添加argument options.add_argument('--headless'),可以让我们在Chrome在headless模式下运行。
而第二个argument的作用是针对现有bug的work around。第三个argument的作用则是允许我们可以在另外一个浏览器中debug。
为了观测运行的情况,我保存了一个屏幕截图。

四、总结

相比于之前的headless web自动化方案,Chrome的优势在于设置的方便,甚至可以和当前的框架无缝切换,同时Chrome作为最为主流的浏览器,你也不用担心持续维护的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值