2013-10-30 135 views
2

基本的Watir webdriver的命令,這裏給出的是:何時使用:something =>'something'以及何時使用:something,'something'?

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

在大多數情況下,筆者採用:something => 'something'

在一個單一的情況下,筆者採用:something, 'something'

是否有執行任何區別這些規格?

有沒有情況下,一個會失敗,另一個會工作?

在我看來,沒有區別。或者更確切地說,在我看來,在我測試的有限範例子集中,沒有任何區別。

另一個問題。由於我先進的年紀,我已經習慣於把東西放在括號內。再一次,我測試了兩者,並沒有發現任何區別。在上述例子中使用圓括號是否會失敗?

回答

3

定位格式

雖然的Watir代碼必須根據所提供的格式不同的東西 - 即一個散列VS兩個參數 - 從的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 

同樣,我會建議總是使用括號使思維過程更容易。

+0

+1只適用於'我建議只使用散列格式,因爲它可以保持事物的一致性,並且在未來添加其他屬性時更易於更改。 –

2

您應該始終使用:something => 'something'

:something, 'something'是舊的API。它仍然有效,但很快就會被移除。

我更新了你引用的文檔,現在它在任何地方都使用新的API。

相關問題