0

私は現在、SeleniumRCを使用していくつかのテストを開発しています。xpath入力とtextareasを使用したseleniumXpath"OR"ステートメントに関して問題が発生します。要点をつかむ。2つのxpathを設計しました

textarea://span[text()='{0}']/parent::*/following-sibling::*//textarea

入力://span[text()='{0}']/parent::*/following-sibling::*//input

通常、Selenium.Type(myXpath、 "label = myValue");を使用しています。これらのxpathはどちらも問題なく動作します。問題は、それらをマージしようとしたときです。どちらのメソッドもまったく同じであるため、入力またはテキストエリアのどちらでも実際には違いはありません。したがって、これらを|とマージしようとしました。(または)ステートメント。

//span[text()='{0}']/parent::*/following-sibling::*//textarea|//input

しかし、残念ながらそれは機能しません。順序が//textarea|//inputtextareaに一致する場合、および//input|//textarea入力に一致する場合。いろいろな組み合わせを試していましたが、まだ何もありませんでした。角かっこや必要な構文がありませんか?助けてくれてありがとう。

4

1 に答える 1

1

すべてのノード()をフェッチして*から、述語を使用して必要なノードの要素名をテストします。

//span[text()='{0}']/parent::*/following-sibling::*//*[local-name() = 'textarea' or local-name() = 'input']

XPathエンジンがサポートしていない場合local-name()(Seleniumの問題のようです。コメントを参照)、次のステートメント全体を繰り返す必要があります。

//span[text()='{0}']/parent::*/following-sibling::*//textarea | //span[text()='{0}']/parent::*/following-sibling::*//input

使用しようとしているクエリは、

(//span[text()='{0}']/parent::*/following-sibling::*//textarea) | (//input)

これは、切り替えtextareaとの結果も説明していますinput

于 2013-02-21T09:48:36.250 に答える