WatirWebdriver与watir1.x的差异

今天在wiki上看到了Watir-Webdriver与watir1.x的差异,估计不少同学会用到,顺手翻译一下,抛砖引玉,谬误勿怪。

元素定位

  • 索引从0开始,而不是从1开始;举例来说,在watir webdriver里table.rows[0]代表的是第一行;

  • 支持所有的HTML标签,当然包括HTML5了;

  • 所有的元素均支持hash定位和多重定位;

  • 集合类的方法支持使用定位参数了,比如

    browser.divs(:class => "foo") #=> #<Watir::DivCollection>

  • 如果没有参数的话则返回第一个匹配元素(注意,是html tag的匹配)

    browser.div #=> the first div on the page

  • 不再支持使用单个参数来定位元素

    browser.div("some_id") #不再支持default how的情况了

  • 不再支持使用第3个参数value来定位checkbox/radio元素

    checkbox(:class => "foo", :value => "bar") # 现在应该这样用

  • elementbyxpath()方法总是返回Watir元素了,不再返回OLE元素;

  • elementsbyxpath()方法返回空的array,如果没有元素匹配到的话(不再返回nil);

  • How参数必须是符号型

    browser.meta(:http_equiv, 'foo') instead of browser.meta('http-equiv', 'foo')

  • 定位元素时,:url不再是:href的别名;

废弃的方法

  • 改进的Table类API;这里面改了不少,不一一写出来了;

  • 移除了一些TextField类的方法

    TextField#verifycontains TextField#dragcontentsto TextField#requirestyping TextField#abhors_typing

  • 一些IE浏览器特有的方法也移除了:(当然,一般都是Browser这个类的)

    Browser#document Browser.{speed,speed=} Browser.{attachtimeout,attachtimeout=} Browser.visible Browser.each Browser#{visible,visible=} Browser#wait Browser#bringtofront

  • 驼峰型的方法被移除了,当然这里面有一些方法在watir1.6中就移除了:

    Container#checkBox Image#hasLoaded? Image#fileSize Image#fileCreatedDate {Radio,Checkbox}#isSet? {Radio,Checkbox}#getState SelectList#getSelectedItems SelectList#getAllContents SelectList#clearSelection TextField#requires_typing TextField#getContents Textfield#dragContentsTo

  • 废弃了SelectList#type #=> "select-one" or "select-multiple"方法,现在用SelectList#multiple

局限性

  • 不再支持attach一个浏览器的实例;新的 window switching API基本可以替代以前的attach()方法使用;

  • 不再支持操作hidden的元素了;

  • Webdriver只支持点击可见的元素;

其他

  • DOM元素的相等比较现在跟Ruby语言中是一致的了:

    Element#== and Element#eql?

原文地址:https://www.cnblogs.com/nbkhic/p/2356038.html