2011-01-25 29 views
2

我剛剛開始使用ruby和firewatir,所以我試圖找出它是否僅僅是我,或者是否有什麼與firewatir斷開。與Firewatir一起使用xpath

我想用xpath選擇一個元素。

這工作:

browser.link(:id => "about").exists #true 

這種失敗

browser.link(:xpath => "//*[@id='about']").exists #false 

然而,這種作品,以及:

browser.element_by_xpath("//*[@id='about']").exists #true 

這是firewatir 1.7.1

$ ruby -v #ruby 1.9.2p136 (2010-12-25 revision 30365) [i686-linux] 
+0

我還沒有使用Ruby 1.9.2與watir,但我不認爲它會影響這樣的事情。 – 2011-01-25 15:49:03

回答

1

看起來有可能是結合了一個錯誤:XPath和多個屬性,因爲XPath查詢不爲我工作,要麼當我使用:XPath的=>:

irb(main):021:0> ff.link(:xpath => "//*[@id='about']").exists? 
=> false 

但它的工作原理,如果我使用單屬性樣式(用逗號代替=>)來查找元素,並使用「exists?」最後帶有問號。

不知道爲什麼,但「存在」和「存在?」被定義,並且它們具有不同的行爲:

irb(main):018:0> ff.link(:xpath, "//*[@id='about']").exists? 
=> true 
irb(main):019:0> ff.link(:xpath, "//*[@id='about']").exists 
=> ""