何时使用:something => '某事'以及何时使用:某事,某事'?

时间:2013-10-30 11:58:38

标签: watir-webdriver

基本Watir WebDriver命令在这里给出:

http://watirwebdriver.com/web-elements/

在大多数情况下,作者使用:something => 'something'

在一个案例中,作者使用:something, 'something'

这些规范的实施有什么不同吗?

是否有人会失败而另一人会工作?

在我看来,没有区别。或者更准确地说,在我看来,在我测试的有限的示例子集中,没有区别。

另一个问题。由于我的高年级,我已经习惯于把事情放在括号内。我再次测试了两者,发现没有区别。是否存在上述示例中括号的使用失败的情况?

2 个答案:

答案 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。