0

ページ上の特定の要素を見つけるために、user-extensions.js にも実装されているカスタム ロケーター関数を使用するカスタム アサート関数を user-extensions.js に記述しました。

詳細に入ることなく; ページ上の別の名前空間で要素を見つけようとしているため、カスタム ロケーター関数が必要です。これは、Selenium がネイティブにサポートしていないようです。

Selenium IDE からカスタム アサート関数を呼び出すと、カスタム ロケータ関数を「暗黙的に」使用して、探している要素を検索し、アサートを実行して、すべて正常に動作します。「暗黙的に」とは、ターゲット「abc = ...」でアサート関数を呼び出すことを意味し、Selenium IDE は、locateElementByAbc ロケーター関数を使用して特定の要素を検索する必要があることを認識します。

ただし、Python で do_command 関数を使用して Selenium RC (Python) から同じカスタム アサート関数を呼び出すと、カスタム ロケーター関数は明らかに暗黙的に呼び出されず、要素が見つかりません。

Selenium RC Python スクリプトを作成して、locateElementByAbc 関数を使用するにはどうすればよいですか? Seleniumサーバーの起動時にuser-extensions.jsがロードされるため、その部分が機能していることに注意してください。assert 関数は、Python から Selenium do_command 関数を使用して呼び出すこともできます。

ご協力ありがとうございます。

4

1 に答える 1

0

LocateElementByMyprefix()この問題は、カスタム ロケーター関数 ( ) が登録されていない可能性が最も高いです。Selenium RC では user-extension.js のセットアップが Selenium IDE とは少し異なり、タイミングが邪魔になることがあります。selenium.browserbot._registerAllLocatorFunctions()関数が定義された後に呼び出してみてください。

于 2011-07-25T16:13:05.800 に答える