2

Firefox プラグインの xpath に問題があります。最初のテキスト ボックスには ID=login があり、残りには動的に生成された ID があります。最初のものはプラグイン //input[@id='login'] に書き込むのに問題なく動作しますが、より高度なものを試すとすぐに何も見つかりません。フォーラムの投稿をたくさん読んだ後、XPather プラグインを使用して xpath コードを生成しようとしましたが、長い html/css で満たされた文字列も機能しません。一部のスレッドでは、人々は「xpath=//...」と書いており、私もそれを試しましたが、結果はありませんでした。

可能な限りのすべての助けに感謝します!

//M

4

2 に答える 2

3

私が使用する 2 つのツールはFirebugXPath Checkerで、どちらも Firefox アドオンです。

Firebug で、HTML タブを選択し、要素を右クリックして [XPath のコピー] を選択します。

XPath チェッカーの場合、ページ内の要素を右クリックし、[XPath の表示] を選択します。

これを確認するには、結果を Selenium IDE のターゲット フィールドに貼り付け、[検索] ボタンをクリックします。これにより、Selenium の結果がどうなるかがわかります (テストを何度も実行するよりもはるかに高速です!)

結果を多少「マッサージ」する必要があることがわかりました。

Google ホームページにアクセスし、左上にある [画像] リンクを探すと、XPath チェッカーは画像の XPath を次のように指定します。

//id('gbar')/x:nobr/x:a 1

これはエラーをスローします:

[エラー] ロケータが見つかりません: //id('gbar')/x:nobr/x:a 1、エラー = エラー: 無効な xpath 2 : //id('gbar')/x:nobr/x:a 1

たとえば、IDを削除した場合

//x:nobr/x:a 1

画像の周りに緑色のボックスがあり、IDE が正しく解析したことを示しています。

于 2010-09-15T01:19:59.793 に答える
0

わかりました、いくつかの新しい情報を見つけました。それは "xpath=/" と XPather からの自動生成コードの書き込みで動作します。ただし、xpath は非常に長く、同じままの HTML タグに大きく依存しています。

次の 3 つのテキスト ボックス要素に情報を入力するために、xpath 式 (または css 式) を記述するためのより良いアイデアがある人はいますか?

テキストボックス 1

  • Firebug: input type="text" tabindex="110" name="6011300f91d9f186d1b7ab1a034827da" id="input1"
  • XPather から取得した Selenium での作業 xpath: xpath=/html/body[@id='fire']/form[@id='loginForm']/div/div/div[@id='container']/div[ @id='content']/div[@id='contentPadding']/div[1]/fieldset[1]/input[@id='input1']

テキストボックス 2

  • input type="password" tabindex="110" name="0de4766295b7a965fc4969da3df6824ba"
  • xpath=/html/body[@id='fire']/form[@id='loginForm']/div/div/div[@id='container']/div[@id='content']/div [@id='contentPadding']/div[1]/fieldset[2]/input

テキストボックス 3

  • input type="password" tabindex="110" class="last" name="6c4e0fcde65e258c3dc7c508a1cc666a"
  • xpath=/html/body[@id='fire']/form[@id='loginForm']/div/div/div[@id='container']/div[@id='content']/div [@id='contentPadding']/div[1]/fieldset[3]/input

//M

于 2010-07-01T08:22:57.970 に答える