WATIR无法找到具有两个连续空格的字符串

时间:2014-12-29 14:20:05

标签: watir watir-webdriver

想要找到一个包含两个连续空格的字符串

在页面http://notepad.cc/manele85

string&#34; Google&#34;在&#39; o&#39;之间有两个连续的空格。和&#39; <&#39;

我的代码:

require 'rubygems'
require 'watir'
require 'watir-webdriver'

b = Watir::Browser.new :firefox

b.goto "http://notepad.cc/manele85"
puts b.div(:text => "Goo  gle").text

输出:

unable to locate element, using {:text=>"Goo  gle", :tag_name=>"div"} (Watir::Exception::UnknownObjectException)

任何人都可以提供帮助吗?

由于

1 个答案:

答案 0 :(得分:0)

通过文本定位元素时,Watir规范化空格。如果将$DEBUG设置为true,则可以看到Watir正在为b.div(:text => "Goo gle")创建以下XPath:

.//div[normalize-space()='Goo  gle']

由于normalize-space,Watir会将多个连续的空格视为单个空格。

因此,在定位元素时,应删除定位器中的连续空格:

b.div(:text => "Goo gle").exists?
#=> true

b.div(:text => "Goo gle").text
#=> "Goo gle"

如果您确实想要使用多个空格来定位元素,则必须获取元素集合并检查文本值:

div = b.divs.find { |div| div.text == 'Goo gle' }
div.text
#=> "Goo gle"