在 Xpath 搜索中转义冒号
我将 Hpricot 与 selenium 一起使用,我有这个 html 输入元素:
<input id="foo:bar"/>
我试图用这个 Xpath 表达式获取这个值:
source = Hpricot(@selenium.get_html_source)
source.search("//input[@id='foo:bar']")
但由于冒号,它没有找到任何东西。我发现 Xpath 表达式不能包含任何冒号。我尝试过用不同的方式来逃避它,但没有成功。
有什么办法可以逃避或者避免这个问题吗?我无法更改 html 中的值,因此 foo:bar 必须采用这种方式,并带有冒号。但我需要以某种方式找到这个元素。
有什么想法吗?
谢谢
I'm using Hpricot with selenium I have this html input element:
<input id="foo:bar"/>
And I'm trying to get this value with this Xpath expression:
source = Hpricot(@selenium.get_html_source)
source.search("//input[@id='foo:bar']")
but it is not finding anything because of the colon. I have seen that the Xpath expression cannot contain any colon. I have tried to escape it in different ways but it doesn't work.
Is there any way to escape it or avoid this problem? I cannot change the values in the html so the foo:bar has to be this way, with the colon. But I need to find this element somehow.
Any ideas?
thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您不需要为此定位器使用 XPath,只要
id
是唯一的,您就可以简单地使用:即使如此,
id=
前缀也不是必需的,因为它将被默认假设。You don't need to use XPath for this locator, as long as the
id
is unique you can simply use:Even then, the
id=
prefix is not necessary as it will be assumed by default.我遇到了同样的问题,这里提出的其他解决方案对我不起作用,因此使用 通过 ID 获取元素。
基本上:
希望这有帮助。
I had the same issue, and the other solutions proposed here didn’t work for me, so used get_element_by_id.
So basically:
Hope this helps.
您也许可以使用 css 定位器来实现此目的,并指定 id 包含特定字符串(事实上,这与字符串匹配应该消除由冒号引起的任何奇怪情况)。
当我在 Selenium IDE 中尝试时,这个定位器对我有用:
You may be able to achieve this with a css locator, and specify that the id contains a particular string (the fact this is matching a string should remove any weirdness caused by the colon).
This locator worked for me when I tried it in Selenium IDE: