基本Watir WebDriver命令在这里给出:
http://watirwebdriver.com/web-elements/
在大多数情况下,作者使用:something => 'something'
在一个案例中,作者使用:something, 'something'
这些规范的实施有什么不同吗?
是否有人会失败而另一人会工作?
在我看来,没有区别。或者更准确地说,在我看来,在我测试的有限的示例子集中,没有区别。
另一个问题。由于我的高年级,我已经习惯于把事情放在括号内。我再次测试了两者,发现没有区别。是否存在上述示例中括号的使用失败的情况?
答案 0 :(得分:3)
定位器格式
虽然Watir代码必须根据所提供的格式执行不同的操作 - 即单个哈希与两个参数 - 从Watir用户(即您)的角度来看,它们是相同的。你可以使用你喜欢的任何一种。
很久以前,Watir只支持使用单个属性定位元素。此时,唯一支持的格式是:something, 'something'
。
当Watir移动到支持定位具有多个属性的元素时,使用散列:something => 'something'
的选项变得可用。据我所知,原始格式:something, 'something'
是为了向后兼容而保留的。
因此,如果您只是根据单个属性查找元素,则可以使用任一格式。如果您使用多个属性,则必须使用哈希 - :something => 'something', :something2 => 'something2'
。
我建议只使用哈希格式,因为它可以保持一致,并且在将来添加其他属性时更容易更改。
<强>括号强>
关于括号的问题,这是一个Ruby事物而不是Watir事物。只有在Ruby对语句的解析不明确时才需要括号。
对于Watir定位器,您几乎总是需要括号。例如:
# Parenthesis are required
browser.link(:id => '1').text
# Without, an exception occurs - undefined method `text' for "1":String (NoMethodError)
browser.link :id => '1'.text
我想如果你有一条刚刚初始化元素的线,那么你可以不用括号的一点。通过将其分为两行,可以重新编写上述内容。
e = browser.link :id => '1'
e.text
同样,我建议总是使用括号使思考过程更容易。
答案 1 :(得分:2)
您应始终使用:something => 'something'
。
:something, 'something'
是旧的API。它仍然有效,但很快就可以删除。
我已经更新了您所引用的文档,现在它在任何地方都使用了新的API。