2
JQueryを使用して項目を検索してSelenium C#に戻す方法を見つけるのが少し難しかったが、私が見つけたものを共有する。特にSeleniumがJQueryにdom要素を渡して結果をCに戻す#
:
- がどのようにjQueryのにC#のからIWebElementsを渡すには?
- javasciptの結果からオブジェクトの配列をC#に戻す方法は?
JQueryを使用して項目を検索してSelenium C#に戻す方法を見つけるのが少し難しかったが、私が見つけたものを共有する。特にSeleniumがJQueryにdom要素を渡して結果をCに戻す#
:
ここで自分の質問に答える:)あなたはJavaScriptにwebElementsを渡し、arguments
を介してそれらにアクセスすることができ
。
結果をC#に戻すには、<IReadOnlyCollection<IWebElement>>
にキャストする必要があります。単一の要素については、IWebElement
を使用してください。複数の結果の1つのトリックは、オブジェクトの代わりに真の配列を返すように、toArray
をJQueryの結果に呼び出さなければならないということです。
var singleResult = Driver.ExecuteJavaScript<IWebElement>(
"return $('.my-class')[0]");
IWebElement elementToPass = Driver.FindElement(By.Id("cool-id"));
var results = Driver.ExecuteJavaScript<IReadOnlyCollection<IWebElement>>(
"return $(arguments[0]).children('.my-class').toArray()", elementToPass);