2

SeleniumIDEで使用したいXpathに問題があります。まず、要素を右クリックしてもSeleniumオプションが表示されないのは不思議です。

次に、Firebugを使用して要素を検査し、XPathをコピーすると、結果は次のようになります。

//html/body/div/div[4]/new:form/div[3]/table/tbody/tr/td/table/tbody/tr[17]/td[3]/a

このパスをSeleniumに挿入すると、「検索」をクリックすると、ロケーターが見つからないというマッサージが表示されます。私がそれを実行すると、それは言う:[エラー]無効なXpath [2] :(そしてパス)

見つけるのに問題はありません

//html/body/div/div[4]/

問題は「new:form」の部分だと思いますが、理由がわかりませんでした。

コードにアクセスできません。しかし、firebugの「new」を削除すると機能します。この問題の解決策はありますか?ありがとう

4

3 に答える 3

1

この質問が書かれた時点では、XPath式内の名前空間に対するSeleniumの適切なサポートはありませんでした。ただし、それ以降は変更されています。しばらくの間(2015年3月頃)、ドキュメントに表示されている名前空間プレフィックスを使用して要素を選択できます。

これ以前は、かなり難しく、受け入れられた回答のような解決策が必要でした。これで、元の質問で指定された式を使用できます。

//html/body/div/div[4]/new:form....
于 2015-09-17T17:34:25.220 に答える
0

Firebug要素によって提供されるXPathはform、いくつかの名前空間で定義されており、Firebugはnewプレフィックスとして使用します。Seleniumが名前空間を使用したXPathをサポートしているかどうかはわかりません。*とにかく、の代わりにを使用して、指定されたXPathをわずかに変更できますnew:form

//html/body/div/div[4]/*[local-name(.) = 'form']/div[3]/table/tbody/tr/td/table/tbody/tr[17]/td[3]/a
于 2012-10-31T21:21:11.787 に答える
0

Firebugの拡張であるFirepathをインストールできます。これにより、より明確なxpathが得られます。

于 2012-11-01T04:50:23.930 に答える