7

Selenium RCでフォーカスがある要素をテストするにはどうすればよいですか?

4

4 に答える 4

6

私が同じ問題を抱えていたとき、さまざまな理由で、他の答えはどれも私にはうまくいきませんでした。私は最終的に次のことを行いました(JavaのSelenium 2.0 WebDriverを使用)。

WebDriver driver = new FirefoxDriver();
String elScript = "return document.activeElement;";

// Note that the executeScript call returns a WebElement, 
// so you can do quite a lot with the result.
WebElement focuseedEl  = (WebElement) ((JavascriptExecutor) driver).executeScript(elScript);

コメントは、私が持っていた混乱のポイントを明確にしています。executeScriptは、実行するように指示した内容に基づいてさまざまなものを返しますが、これは非常に難しい場合があります。

于 2012-01-06T18:02:35.993 に答える
2

:focus疑似クラスのアイデアを機能させることができませんでした。理由はわかりませんが、ターゲティングcss=#search_input input.textは一致しましたが、一致css=#search_input input.text:focusしませんでしたか?しかし、これが私のために働いたものです:

self.assertEquals(self.se.get_element_index('dom=document.activeElement'),
     self.se.get_element_index('//input[@id="search-query"]'))

これはPythonSeleniumAPIを使用しているためget_element_index()呼び出しはコアSeleniumコマンドリストのラッパーです。これを環境に適合させます。ドキュメントのフォーカスされた要素の要素インデックス(Javascript DOMロケーターで取得)とフォーカスをテストする要素の要素インデックス(XPathロケーターで取得)を評価しています。この質問も参照してください。

于 2010-07-28T16:42:59.597 に答える
1

私はこの問題の解決策を見つけ、テストの実行時にこの問題を修正するための簡単なスクリプトを開発しました。問題は、ブラウザのネイティブ一致セレクターとクエリセレクターがオペレーティングシステムに対応していることです。つまり、ブラウザーとWebページタブにオペレーティングシステム内のフォーカスがない限り、:focusセレクターはドキュメント内のどのアイテムとも一致しません。私はこれを回避する方法を見つけるためにJQueryの内部を調べました。これは、ブラウザーのネイティブ関数を使用してセレクタークエリを最適化するのではなく、JQueryにSizzleを使用させるだけで実行できます。

次のスクリプトhttps://gist.github.com/1166821を含めると、JQueryを含める前に、Seleniumテストが:focusテストに合格します。

問題、解決策、およびテストの実行方法の完全な記述については、http://blog.mattheworiordan.com/post/9308775285/testing-focus-with-jquery-and-selenium-orを確認してください。

これが同じ問題を抱えている他の人に役立つことを願っています。

于 2011-08-23T23:06:12.853 に答える
1

Seleniumに要素ロケーターを提供するときにCSSセレクターを使用できます:http://release.seleniumhq.org/selenium-core/1.0/reference.html#locators

したがって、:focusセレクターでCSS疑似クラスを使用して、要素がフォーカスされている場合にのみ一致させることができます。

verifyElementPresentそれを次のようなアクションとターゲットと組み合わせますcss=.yourclassname:focusyourclassnameもちろん、CSSクラス名に置き換えるか、他のCSSセレクターの1つを使用してください。重要なの:focusは最後です。

これは、SeleniumIDEFirefoxプラグインではほぼ確実に機能しないことに注意してください。これは、このプラグインが代わりにフォーカスを持っているためだと思います。IDEで動作させることができませんでした(テストは常に失敗しました)が、エクスポートしてJavaテストとして実行すると正常に動作しました。

HTH

サム

于 2010-04-29T11:26:24.810 に答える