3

私はこのhtml入力要素を持っているセレンでHpricotを使用しています:

<input id="foo:bar"/>

そして、この Xpath 式でこの値を取得しようとしています:

source = Hpricot(@selenium.get_html_source)
source.search("//input[@id='foo:bar']")

しかし、コロンのために何も見つかりません。Xpath 式にコロンを含めることはできません。いろいろな方法で逃げようとしましたが、うまくいきません。

それを回避したり、この問題を回避したりする方法はありますか? html の値を変更できないため、foo:bar はこのようにしてコロンを使用する必要があります。しかし、どうにかしてこの要素を見つける必要があります。

何か案は?

ありがとう

4

3 に答える 3

2

私は同じ問題を抱えていましたが、ここで提案された他の解決策はうまくいかなかったため、get_element_by_idを使用しました。

だから基本的に:

source = Hpricot(@selenium.get_html_source)
source.get_element_by_id("foo:bar")

お役に立てれば。

于 2012-10-26T08:55:43.943 に答える
2

idが一意である限り、このロケーターに XPath を使用する必要はありません。

id=foo:bar

それでも、id=デフォルトで想定されるため、プレフィックスは必要ありません。

于 2010-06-29T15:16:42.517 に答える
1

css ロケーターを使用してこれを実現し、id に特定の文字列が含まれていることを指定できる場合があります (これが文字列に一致するという事実は、コロンによって引き起こされる奇妙さを取り除くはずです)。このロケーターは、Selenium IDE で試したときにうまくいきました。

css=input[id:contains('foo:bar')]
于 2010-06-29T15:03:28.127 に答える