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. 详解iBaits中SqlMapClientTemplate的使用

    Apache iBatis(现已迁至Google Code下发展,更名为MyBatis)是当前IT项目中使用很广泛的一个半自动ORM框架,区别于Hibernate之类的全自动框架,iBatis对数据库 ...

  2. U面经Prepare: Web Address

    题目是给你一堆域名,其中一些是另一些的parent,比如.com是.youku.com的parent,然后.youku.com是.service.youku.com的parent这样,然后再给你一个网 ...

  3. 安装mongodb服务

    摘要:https://www.cnblogs.com/z-x-y/p/9305635.html 欢迎转载,转载请标明出处:https://www.cnblogs.com/z-x-y/p/9305635 ...

  4. 构建RN或Weex项目时,使用Android Studio常遇到的问题

    1 . androidStudio报错No cached version available for offline mode 解决方法 原因是之前为了提高编译速度,在Gradle设置选项中开启了Of ...

  5. RSA算法的C++string实现(模幂算法和欧几里得算法的使用)后附思路

    void resetNumA(string numAStr); //使用string重置numB void resetNumB(string numBStr); //将数组转换为字符串,用于输出 st ...

  6. 蓝桥杯近3年初赛题之三(17年b组)

    1. 标题: 购物单 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物.老板忙的时候经常让小明帮忙到商场代为购物.小明很厌烦,但又不好推辞. 这不,XX大促销又来了!老板夫人开出了长长的购物单,都是 ...

  7. Selenium Edge Driver Python 自动化测试

    Finally I got it. 没有自动化过edge,今天被小坑了一下,但是还好现在弄好了. 1. 查看edge 版本,我的是14.14393 2. https://developer.micro ...

  8. MySQL根据出生日期计算年龄

    以前使用mysql不是很多,对mysql的函数也不是很熟悉,遇到这个问题第一时间百度搜索,搜索到这两种方法,这两种方法是排在百度第一条的博客. 方法一 SELECT DATE_FORMAT(FROM_ ...

  9. 读HashMap 源码(jdk11)的见解

    如果想系统详细的了解HashMap请移步各大佬博客.这篇文章只是个人的一些见解. 数组+链表 或 数组+红黑树.这种说法感觉有迷惑性. 之前看博客都说 HashMap 的存储是数组+链表(jdk6), ...

  10. 寻找U2OS中表达的基因及其promoter并用于后续annotation

    方法1.RNA-seq得到不同表达程度基因 方法2. 直接download U2OS_gene.csv https://cancer.sanger.ac.uk/cell_lines/download ...