我刚刚开始使用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]
答案 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
=> ""