Selenium出来已经有很多年了,从最初的Selenium1到后来的Selenium2,也变得越来越成熟,而且也已经被很多公司广泛使用。Selenium发展的过程中,分了很多模块,这里我们主要介绍Webdriver,Webdriver已经被很多浏览器所兼容。WebDriver在自动化脚本和浏览器之间充当的角色和之前介绍的Appium很像。

由于现在很多的浏览器都已经主动支持和兼容了WebDriver,所以Webdriver在启动后,会确认浏览器的native component是否存在可用而且版本匹配,接着就在目标浏览器里启动使用Selenium自己设计定义的协议(WebDriver Wire Protocol),WebDriver Wire协议是通用的,也就是说不管是FirefoxDriver还是ChromeDriver等,启动之后都会在某一个端口启动基于这套协议的Web 服务,WebDriver Wire协议是一套基于RESTful的web服务。

在调用WebDriver的时候,实际上是给在浏览器上启动的RESTful服务监听端口上发送http请求,请求会以WebDriver Wire协议规定的JSON格式的字符串来告诉Selenium希望浏览器执行什么样的操作。

Selenium和RobotFramework Selenium2Library库介绍

通过http://www.seleniumhq.org/ 可以访问Selenium官网。从该网站上可以下载到各种浏览器运行需要的Driver。

http://www.seleniumhq.org/docs/ 地址可以查询到关于Selenium的文档和介绍等信息。

Open Browser和Close Browser

在Selenium2Library库中,Open Browser关键字用来打开一个指定的浏览器,该关键字接收如下参数:

参数(Arguments)

说明

url

浏览器中需要打开的url地址

browser

指定需要打开的浏览器类型,包括IE,Firefox,chrome,opera, safari等常用的浏览器,默认使用Firefox

alias

设定的浏览器实例的别名,可以用于浏览器之间的切换,默认为None

remote_url

是否启用通过remote server的形式来访问,默认为False

desired_capabilities

可以指定的配置参数,默认为None

ff_profile_dir

该参数主要针对火狐浏览器,可以通过该参数指定firefox profile路径,默认为None

Close Browser 关键字用来关闭一个已经打开的当前浏览器。

示例1:打开谷歌浏览器,url地址中输入http://www.baidu.com

Open Browser http://www.baidu.com    chrome

执行结果:

Starting test: RobotFrameworkTest1.TestSuite6.TestCase0002

20170529 15:22:55.284 :  INFO : Opening browser 'chrome' to base url 'http://www.baidu.com'

Ending test:   RobotFrameworkTest1.TestSuite6.TestCase0002

示例2:打开IE浏览器,url地址中输入http://www.baidu.com,然后关闭浏览器

Open Browser         http://www.baidu.com    ie

Close Browser

执行结果:

Starting test: RobotFrameworkTest1.TestSuite6.TestCase0001

20170529 15:31:01.937 :  INFO : Opening browser 'ie' to base url 'http://www.baidu.com'

Ending test:   RobotFrameworkTest1.TestSuite6.TestCase0001

另外在使用IE浏览器时,需要将浏览器选项中,安全标签下的每个区域中是否启用保护模式保持一致,要么全部启用,要么全部不启用,如下图所示,不然的话容易出现类似WebDriverException: Message: Unexpected error launching Internet Explorer. Protected Mode settings are not the same for all zones. Enable Protected Mode must be set to the same value (enabled or disabled) for all zones.的报错。

【原文归作者所有,欢迎转载,但是保留版权,并且转载时,需要注明出处

Robot Framework自动化测试框架核心指南电子版试读

RobotFramework自动化测试框架-Selenium Web自动化(-)-Open Browser和Close Browser的更多相关文章

  1. RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)

    好久没有继续分享关于自动化测试相关的东西了,自动化在现今的测试领域已经越来越重要了,大部分公司在测试岗位招聘中都需要会相关的自动化测试知识.而 RobotFramework自动化测试框架 是自动化测试 ...

  2. RobotFramework自动化测试框架-Selenium Web自动化(三)关于在RobotFramework中如何使用Selenium很全的总结(下)

    本文紧接着RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)继续分享RobotFramewor ...

  3. RobotFramework自动化测试框架-移动手机自动化测试AppiumLibrary介绍

    在使用AppiumLibrary库时,需要预先安装好Appium自动化工具,Appium官网地址为:http://appium.io/ Appium的GitHub地址为:https://github. ...

  4. RobotFramework自动化测试框架-DatabaseLibrary库的使用(对数据库的操作)

    在自动化过程中,我们经常需要连接不同的数据库,并且对数据库进行很多不同的操作,RobotFramework中,提供了DatabaseLibrary这个库来操作数据库,我们可以按照官网中的说明来安装Da ...

  5. RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib

    使用Python构建Lib工程 可以用来开发Python Lib的IDE工具有很多,常见的有Pycharm,Eclipse with PyDev插件等,而且在RobotFramework官网中也已经提 ...

  6. Selenium Web 自动化 - 项目实战(三)

    Selenium Web 自动化 - 项目实战(三) 2016-08-10 目录 1 关键字驱动概述2 框架更改总览3 框架更改详解  3.1 解析新增页面目录  3.2 解析新增测试用例目录  3. ...

  7. Selenium Web 自动化 - 项目实战(一)

    Selenium Web 自动化 - 测试框架(一) 2016-08-05 目录 1 框架结构雏形2 把Java项目转变成Maven项目3 加入TestNG配置文件4 Eclipse编码修改5 编写代 ...

  8. 小白学 Python 爬虫(28):自动化测试框架 Selenium 从入门到放弃(下)

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  9. Selenium Web 自动化 - 项目持续集成

    Selenium Web 自动化 - 项目持续集成 2017-02-13 目录 1环境准备  1.1 安装git  1.2 安装jenkins  1.3 安装jenkins插件  1.4 jekins ...

随机推荐

  1. laravel----------Client error: `POST http://47.98.116.219/oauth/token` resulted in a `401 Unauthorized` response: {"error":"invalid_client","message":"Client authentication failed"}

    1.设备没有授权,原因是 这个client_id的值就是数据库wk_oauth_clients 的主键ID,查看下表是否有这条数据

  2. Spring MVC请求流程

    Spring MVC 发起请求到前端控制器DispathServlet 前端控制器请求处理器映射器 handerMapping查找handler 处理器映射器handerMapping像前端控制器返回 ...

  3. Docker容器和本机之间的文件传输

    docker cp 本地文件路径 ID全称:容器路径

  4. Appium+Python3+iOS真机环境搭建

    Appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web 应用和混合应用. 本次环境配置相关:macOS:10.13.4Appium-desktop:1. ...

  5. [游戏开发日志]Windows下Cocos2d-x 3.14环境搭建

    总介绍 我们小组使用的是cocos2d-x的游戏开发引擎,因此在所有开发工作之前,我们需要对这个引擎进行环境的搭建. 搭建过程 VS2013的下载和安装 VS只是作为一个开发环境而已,简单来说就是敲代 ...

  6. Spring Boot 2.x中的management.security.enabled=false无效问题

    look: https://blog.csdn.net/qq_27385301/article/details/82899303

  7. php 当前日期加一天和指定日期加一天

    1.给当前时间加一天?一小时? <?phpecho "今天:",date('Y-m-d H:i:s'),"<br>";echo "明 ...

  8. BP神经网络(原理及MATLAB实现)

    人工神经网络概述: 人工神经元模型: 神经网络的分类: 按照连接方式,可以分为:前向神经网络 vs. 反馈(递归)神经网络: 按照学习方式,可以分为:有导师学习神经网络 vs. 无导师学习神经网络: ...

  9. bzoj2839 集合计数(容斥)

    2839: 集合计数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 883  Solved: 490[Submit][Status][Discuss] ...

  10. 迭代(遍历)时候不可以使用集合的remove和add方法,但可使用Java迭代器的remove和add方法

    不要在 foreach 循环里进行元素的 remove/add 操作.remove 元素请使用 Iterator 方式. 反例: public class ForeachTest { private ...