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.pswp.cn/news/456396.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456396.shtml
英文地址,請注明出處:http://en.pswp.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相對布局等…