在Firewatir中使用xpath

时间:2011-01-25 03:18:34

标签: ruby watir firewatir

我刚刚开始使用ruby和firewatir,所以我试图找出它是否仅仅是我,或者是否因为firewatir而被打破了。

我正在尝试使用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]

1 个答案:

答案 0 :(得分: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
=> ""