我正在使用Hpricot和selenium我有这个html输入元素:
<input id="foo:bar"/>
我正在尝试使用此Xpath表达式获取此值:
source = Hpricot(@selenium.get_html_source)
source.search("//input[@id='foo:bar']")
但由于结肠没有找到任何东西。我已经看到Xpath表达式不能包含任何冒号。我试图以不同的方式逃避它,但它不起作用。
有没有办法逃避它或避免这个问题?我无法更改html中的值,因此foo:bar必须采用冒号方式。但我需要以某种方式找到这个元素。
有什么想法吗?
感谢
答案 0 :(得分:2)
您不需要为此定位器使用XPath,只要id
是唯一的,您只需使用:
id=foo:bar
即使这样,也不需要id=
前缀,因为默认情况下会假设它。
答案 1 :(得分:2)
我有同样的问题,这里提出的其他解决方案对我不起作用,所以使用了get_element_by_id。
基本上是这样的:
source = Hpricot(@selenium.get_html_source)
source.get_element_by_id("foo:bar")
希望这有帮助。
答案 2 :(得分:1)
您可以使用css定位器实现此目的,并指定id包含特定字符串(事实上,这匹配字符串应该删除由冒号引起的任何奇怪)。 当我在Selenium IDE中尝试它时,这个定位器对我有用:
css=input[id:contains('foo:bar')]