2011-01-25 31 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 
=> ""