7

これは状況です:

  • Selenium2のJavaAPIを使用して、Firefoxブラウザーインスタンスを開いて制御します
  • JavaScriptの実行を介してjQueryスクリプトをページにロードします
  • 次に、jQuery式を使用して要素を選択し、DOMツリーをトラバースします

今私の質問です、私はどういうわけか見つかった要素のそれぞれの一意の識別子を見つけることができますか?私の目標は、XpathまたはCSSセレクターを使用してSeleniumで同じ要素を取得することです。したがって、jQueryの要素に対して明確なセレクターを生成できれば、最も簡単です。他のアイデアも大歓迎です。

Selenium要素/ロケーターに「変換」できるjQueryの要素を識別するための自動アプローチが必要です。

/編集

明確にするために:

jQueryで要素を選択した場合:

webDriver.executeScript("var element = $('#myDiv input.test')");

今、私はこのようなものが欲しいです:

WebElement webElement = webDriver.executeScript("return element");

それは可能ですか?

4

3 に答える 3

11

私は解決策を見つけました、それは非常に簡単です:

String jQuerySelector = "'#myDiv input.test'";
RenderedWebElement webElement = (RenderedWebElement) ((JavascriptExecutor) webDriver).executeScript("return $(" + jQuerySelector+ ").get(0);");

Seleniumで以前に選択されたjQueryの要素を操作することもできます。

String jQuerySelector = "arguments[0]";
((JavascriptExecutor) webDriver).executeScript("return $(" + jQuerySelector+ ").doSomethingInJquery();", webElement);
于 2011-04-15T00:44:23.337 に答える
0

正確な問題はわかりませんが、html id、name、class などの属性を使用してロケーターを作成できます。

于 2011-03-31T07:51:07.430 に答える