watir6.0 -selenium3新时代的watir-webdriver

很久没写博客了- -

记得几年前使用watir的时候还是1.x系列,个人感觉还是非常好用的,不过缺点也很明显,只支持ie,对于弹出框下载框等支持不是很好,经常需要结合autoit 一起使用。

中间有一段时间没有使用过watir,它也一直不温不火,不过与此同时selenium2却大放异彩,应该说变成主流自动化测试工具了(另一是QTP)。

而后想再次使用watir的时候,却发现了watir-webdriver这一工具,selenium2的ruby封装版本,瞬间就被吸引了。它具有selenium2的所有优点,并且实际使用起来比原生selenium2语法更简洁更方便,不过还是有一些watir上的好的功能没有带出来。特别明显的是attach方法。就是控制已打开的浏览器的方法,因为selenium只可以从头打开新的浏览器进行操作,对于已经打开过的浏览器 不可以再进行操作。这种特性有时候并不便于调试代码或其他功能。

没事的时候也研究过这个attach功能,发现它依靠于另一个gem-rautomation(http://www.rubydoc.info/gems/rautomation) 不过已经很久没更新了,也只支持32位。研究了下源码发现想要实现attach功能到watir-webdriver 还是很有难度的,然后就放弃了  - - 等待大神。

又隔了一段时间,忽然发现selenium2 更新到selenium3了-- 然后watir也更新到watir6.0了(watir-webriver的升级版,可以把watir-webdriver丢了。),全面支持selenium3.特意写下这篇博客,记录下watir 的变化。

--------------------------------------------------------------------------------------------------------------------------------------------

想学习好watir,还是要多看api (http://www.rubydoc.info/gems/watir )

watir 主页地址:(http://watir.github.io/) 建议没事多看看,很多功能已经描述清楚。

ruby  安装包地址:https://rubyinstaller.org/downloads/

对于不同浏览器有不同的驱动需要下载:

不同浏览器的驱动地址

http://docs.seleniumhq.org/download/

常用的 浏览器 :

firefox:

https://github.com/mozilla/geckodriver/releases
chrome:
http://chromedriver.storage.googleapis.com/index.html?path=2.27/
将各个浏览器的驱动下载好之后
(我下载了4个驱动,firefox浏览器:geckodriver.exe,chrome浏览器:chromedrvier.exe, ie浏览器:IEDriverServer.exe,edge浏览器:MicrosoftWebDriver.exe)
将驱动文件放入 C:\Ruby22\bin 文件夹内 就可以了。
require 'watir'
browser = Watir::Browser.new :chrome
#browser = Watir::Browser.new :firefox
#browser = Watir::Browser.new :ie
#browser = Watir::Browser.new :edge
browser.goto 'www.google.com'
browser.text_field(title: 'Search').set 'Hello World!'
browser.button(type: 'submit').click
puts browser.title
# => 'Hello World! - Google Search'
browser.quit

这里有一个问题,就是chrome 浏览器的时候,即使后面不加browser.quit 或者browser.close 方法 浏览器执行完也会自动关闭。不知道是不是只有我遇到这个问题,
这个问题已经提给watir开发组了,不过还没有回复- - 。
如此就可以进行watir开发了,实践是最好的老师。

 

转载于:https://www.cnblogs.com/jiajia-autotesting/p/6428574.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/456396.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flask-Script扩展命令行manager = Manager(app)

通过使用Flask-Script扩展,我们可以在Flask服务器启动的时候,通过命令行的方式传入参数。而不仅仅通过app.run()方法中传参,比如我们可以通过python hello.py runserver --host ip地址,告诉服务器在哪个网络接口监听来自客户端的连…

Python基础总结之常用内置方法总结

文章目录前言1、str1.1、内置方法:1.2、常用的内置方法1.3、String模块的一些方法2、list2.1、内置方法2.2、常用内置方法3、tupple3.1、内置方法3.2、常用内置方法4、dict4.1、内置方法4.2、常用内置方法5、其他5.1、几个sort的使用5.2、enumerate(&…

线程的条件变量实例

情景1:Jack开着一辆出租车来到一个网站停车。看见没人就走了。过段时间。Susan来到网站准备乘车。可是没有来,于是就等着。过了一会Mike开着车来到了这个网站,Sunsan就上了Mike的车走了。如图所看到的:程序实现该情景:…

Flask 模板 之 变量和过滤器

1.模板 在前面的示例中,视图函数的主要作用是生成请求的响应,这是最简单的请求。实际上,视图函数有两个作用:处理业务逻辑和返回响应内容。在大型应用中,把业务逻辑和表现内容放在一起,会增加代码的复杂度…

架设证书服务器 及 让IIS启用HTTPS服务

http://blog.csdn.net/dier4836/article/details/7719532转载于:https://www.cnblogs.com/kunlunmountain/p/6428838.html

浅谈互联网寒冬与经济形势

文章目录前言:闲扯总结:前言: 作为刚进入职场一年多的小白来说,刚准备“猥琐发育涨经验”,却碰到这股互联网寒冬,也感到鸭梨山大。也许有人认为我在贩卖焦虑,但是现实真的很严峻。接下说下过去…

jenkins 配置

build periodically 周期进行项目构建poll scm 定时检查远吗变更,如果有更新就checkout最新code下来,然后执行构建动作日程表:H 9 *** : 每天9点固定构建一次H/30 8-17 *** : 每天的8-17点每隔三十分钟检查一次转载于:https://…

Java集合---LinkedList源码解析

一、源码解析1、 LinkedList类定义2、LinkedList数据结构原理3、私有属性4、构造方法5、元素添加add()及原理6、删除数据remove()7、数据获取get()8、数据复制clone()与toArray()9、遍历数据:Iterator()二、ListItr 一、源码解析 1、 LinkedList类定义。 public cla…

Mysql面试热身题集总结

文章目录前言1、热身题实践其他前言 一直有个想法:把面试需要的知识点全都总结一下,包括数据库,语言,算法,数据结构等知识,形成一个面试总结笔记,这样以后面试的时候只看这些文章回顾下就行了。…

Flask中的 url_for() 函数

最近在学Python Flask框架,并且学会做一些简单的项目,如做一个网站的登录页面等,其中学到了一个路由反向解析的函数 url_for(),这里做一个小结,供日后复习。 1.URL反转:根据视图函数…

Oracle执行计划解释

为什么80%的码农都做不了架构师?>>> 一.相关的概念 Rowid的概念:rowid是一个伪列,既然是伪列,那么这个列就不是用户定义,而是系统自己给加上的。 对每个表都有一个rowid的伪列,但是表…

邓迎春绘画201702作品10

转载于:https://www.cnblogs.com/hanxiangmin/p/6439376.html

解决:FLASK中Warning: (1366, Incorrect string value: '\\xD6\\xD0\\xB9\\xFA\\xB1\\xEA...'

Flask项目中使用mysql数据库启动项目是发出警告: Warning: (1366, “Incorrect string value: ‘\xD6\xD0\xB9\xFA\xB1\xEA…’ for column ‘VARIABLE_VALUE’ at row 479/480/481”) 但是项目可以正常启动使用 如果想将次警告去掉需要导入一个模块 解决方法&…

Pandas常用操作总结

文章目录前言1、DF常用的两种创建方式方式一:通过np来生成方式二:通过字典来生成2、pandas常用的属性及方法3、Pandas Select(数据选择)4、Pandas Set_values设置值5、Pandas Nan处理缺失值方法一:剔除缺失值所在的行或列方法二:填…

jmeter跨线程组传值

在测试过程中,有时候需要jmeter跨线程组传值,jmeter本身又不具备此功能,那么,又该如何实现呢? 其实,我们可以通过BeanShell去实现。 实现过程如下: 1.线程组A中,使用正则表达式提取器…

BZOJ 3093: [Fdu校赛2012] A Famous Game

3093: [Fdu校赛2012] A Famous Game Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 248 Solved: 133[Submit][Status][Discuss]Description Mr. B and Mr. M like to play with balls. They have many balls colored in blue and red. Firstly, Mr. B randomly picks up N …

Python第三方库的安装及路径查看总结

文章目录1、python第三方库的四种安装方法2、更换安装的第三方库的镜像源3、如何查看查看python安装路径以及pip安装的包列表及路径3.1、Linux环境下查看Python路径3.2、查看使用pip安装的软件包3.3、Windows 环境 查看Python路径实际工作中,经常会在公司的服务器中…

解决 Cannot open D:\Program Files\Anaconda3\Scripts\pip-script.py 问题

报错: Collecting pip Using cached https://files.pythonhosted.org/packages/30/db/9e38760b32e3e7f40cce46dd5fb107b8c73840df38f0046d8e6 514e675a1/pip-19.2.3-py2.py3-none-any.whl Installing collected packages: pip Found existing installation: pi…

解决:flask-sqlalchemy.exc.DataError: (pymysql.err.DataError) (1406数据库字段超出长度错误)

这个问题是说数据库user的password字段长度超出,修改长度后, 硬核方法删除migrations 文件夹 然后删除数据库中模型表格 python manage.py db init python manage.py db migrate python manage.py dbupgrate 三连击后,在重新运行后方能生…

Android应用程序结构解析

界面布局文件 <?xml version"1.0" encoding"utf-8"?> 声明了XML的版本号和编码方式 <RelativeLayout>:声明本界面采用的布局为RelativeLayout相对布局&#xff0c;该标签下定义了诸如 layout_width/layout_height和paddingLeft相对布局等…