end
super( @o )
end
TextField的初始化方法还有supported_types,size,maxLength,assert_not_readonly,verify_contains,dragContentsTo,append,set,clear等方法。
这里有getObject方法在WATIR中使用普遍。主要是对该PAGE中的各种TAG进行精确定位。然后使用该Object的属性进行特殊事件处理,下面是text_field的set方法主要是事件定位,发送键盘信息等处理。
def set( setThis ) assert_exists assert_enabled assert_not_readonly highLight(:set) @o.scrollIntoView @o.focus @o.select() @o.fireEvent("onSelect") @o.value = "" @o.fireEvent("onKeyPress") doKeyPress( setThis ) highLight(:clear) @o.fireEvent("onChange") @o.fireEvent("onBlur") end |
在源码中也用到了AutoIT与IE.document(在.NET自动化中非常常用,用来对HTML PAGE的document化转化,方便对object的操作)。AutoIT主要是对windows窗口属性的设置和操作,比如发送键盘信息:
def send_keys (key_string) |
设置窗口状态:
def set_window_state (state) |
开源的Watir对于web ui自动化是一个很好的福音,对于几个自动化工具的横向对比,都大体思路大同小异 ,都是对HTML Page的解析,使用object或者文档化后进行正则表达式对对象的准确定位,再使用IEController进行操作,或者使用AutoIT对 windows窗口进行操作。
文章来源于领测软件测试网 https://www.ltesting.net/