在Watir中進行物件對映(Object Map)的方法
自動化測試工具都流行做物件對映,例如QTP的Object Repository、RFT的Object Map,如果要在Watir中做物件對映應該怎麼做呢?
查詢了一下OpenQA上關於Watir的FAQ,發現這種方法:
http://wiki.openqa.org/display/WTR/FAQ#FAQ-HowdoIcreateanapplication%2Fobjectmap%3F
How do I create an application/object map?
Insert the object recognition into a small method
def login_link;$ie.link(:text, 'Log in');end
def username_field;$ie.text_field(:name, 'userid');end
then in your test class do:
login_link.click
username_field.set(username)
但是好像行不通!修改成這樣就可以:
require 'watir'
require 'test/unit'
class TC_myTest < Test::Unit::TestCase
def setup
@ie = Watir::IE.new
@ie.goto("http://www.google.cn")
end
def SearchField;@ie.text_field(:name,"q");end
def SearchButton;@ie.button(:name,"btnG");end
def test_1
#@ie = Watir::IE.new
#@ie.goto("http://www.google.cn")
SearchField().set('陳能技')
SearchButton().click()
end
end
後來又google了另外一種做法:
建立Map類
require 'watir'
module Watir
class Map
def initialize(ie)
@ie = ie
Watir::Container.instance_methods.each do |method|
Map.class_eval("def #{method}(k,v); @ie.#{method}(k,v); end") if
method !~/=/
end
end
end
end
ie = Watir::IE.start('http://google.cn')
map = Watir::Map.new(ie)
# If leave out the Map class and instead do
#map = Watir::IE.start('http://google.cn')
# 在這裡集中定義測試物件對映
SearchField = map.text_field(:name, 'q')
SearchButton = map.button(:name, 'btnG')
# 使用對映物件
SearchField.set('陳能技')
SearchButton.click()
相關文章
- 在Java中對集合當中的物件進行排序Java物件排序
- Dozer物件對映框架Map到JSONString對映問題排查物件框架JSON
- 在.net中使用AutoMapper進行物件對映,物件相互轉,簡單方便APP物件
- .NET CORE 中使用AutoMapper進行物件對映APP物件
- Hibernate中對映物件應該在service中出現麼?物件
- 在Watir中整合AutoIt處理JavaScript彈出視窗的方法JavaScript
- 在Watir中呼叫JavaScript指令碼JavaScript指令碼
- 詳解object detection中的mAPObject
- iOS中對NSArray中自定義的物件進行排序iOS物件排序
- [譯] part 13: golang 對映 mapGolang
- PHP轉Go系列:map對映PHPGo
- 【Java中遍歷Map物件的4種方法】Java物件
- 對list集合中的物件進行排序(轉載)物件排序
- 用java.util.Collections中的sort方法對兩個類的物件進行排序Java物件排序
- Java中如何遍歷Map物件的4種方法Java物件
- elasticsearch的object型別和動態對映ElasticsearchObject型別
- 關於struts2 action中map型別屬性的對映型別
- Cisco的路由器上進行埠對映路由器
- 在 JavaScript 中,什麼時候使用 Map 或勝過 ObjectJavaScriptObject
- [譯] 原始碼對映(Source Map)簡介原始碼
- Image Map,是對映還是地圖?地圖
- MapStruct 解了物件對映的毒Struct物件
- ElasticSearch中的對映Elasticsearch
- ASP.NET Core 中的物件對映之 AutoMapperASP.NET物件APP
- Js比較對Object型別進行排序JSObject型別排序
- 如何遍歷Map中的物件物件
- Go語言之對映(map)快速入門篇Go
- 在JavaScript中對HTML進行反轉義JavaScriptHTML
- 教你如何修改執行中的容器埠對映
- 詳解Javascript中的Object物件JavaScriptObject物件
- Object物件常用方法總結Object物件
- Object-C,物件和方法Object物件
- TypeScript 中令人迷惑的物件型別:Object、{} 和 objectTypeScript物件型別Object
- java物件關係對映ROMJava物件
- 影像對映——我的web前端自學之路進行時2Web前端
- AutoMapper在MVC中的運用05-對映中的忽略、處理null、多種對映轉換APPMVCNull
- 將Object物件轉換成Map 屬性名和值的形式Object物件
- js 中的json物件和mapJSON物件