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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Selenium自动化测试实战] 不打开浏览器如何进行WEB自动化测试相关的知识,希望对你有一定的参考价值。

参考技术A 在一般的使用场景下,使用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")")

通过在Selenium::WebDriver::Chrome::Options类的对象中添加argumentoptions.add_argument('--headless'),可以让我们在Chrome在headless模式下运行。

而第二个argument的作用是针对现有bug的work around。第三个argument的作用则是允许我们可以在另外一个浏览器中debug。

为了观测运行的情况,我保存了一个屏幕截图。

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

使用Selenium框架在做Web自动化测试时,如何处理弹出框?

参考技术A Web自动化测试中处理弹出框的相关方法(python语言):
alert = driver.switch_to.alert # 获取弹出框对象
alert.text # 获取弹出框的提示内容
alert.accept() # 点击确定按钮,关闭弹出框
全套的课程可以找传智播客的,很多大牛的老师讲的都很全,主要是有配套资料哈。本回答被提问者采纳
参考技术B


    这种控件需要agent浏览器支持, 如果不支持,需要先配置agent浏览器.

    2.如果不想使用控件, 可以试试直接给loginpwd 这个hidden控件赋值: type("id=loginpwd","pwd123");





以上是关于[Selenium自动化测试实战] 不打开浏览器如何进行WEB自动化测试的主要内容,如果未能解决你的问题,请参考以下文章

Selenium3 Python3 Web自动化测试从基础到项目实战之二浏览器的不同设置

Selenium+Python自动化测试实战元素定位

船长带你看书——《selenium2 python 自动化测试实战》浏览器操作

Selenium自动化测试实战1-基本使用

《selenium2 python 自动化测试实战》(20)——Selenium工具介绍

Selenium 2自动化测试实战20(操作cookie)