2016-06-28 4 views
2

JQueryを使用して項目を検索してSelenium C#に戻す方法を見つけるのが少し難しかったが、私が見つけたものを共有する。特にSeleniumがJQueryにdom要素を渡して結果をCに戻す#

  • がどのようにjQueryのにC#のからIWebElementsを渡すには?
  • javasciptの結果からオブジェクトの配列をC#に戻す方法は?

答えて

3

ここで自分の質問に答える:)あなたは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); 
関連する問題