2016-06-28 4 views
2

으로 가져옵니다. 그래서 JQuery를 사용하여 물건을 검색하고 셀레늄 C#으로 다시 전달하는 방법을 찾는 데 어려움이있었습니다. 내가 찾은 것을 나눈다. 특히셀레늄은 JQuery에 dom 요소를 전달하고 결과를 C#

:

  • 어떻게 JQuery와에 C에서 # IWebElements을 통과?
  • javascipt의 결과에서 개체 배열을 C#으로 가져 오는 방법은 무엇입니까?

답변

3

여기에 내 자신의 질문에 대답 : 당신은 자바 스크립트에 webElements을 통과 arguments를 통해 액세스 할 수 있습니다

.

결과를 다시 C#으로 가져 오려면 <IReadOnlyCollection<IWebElement>>으로 캐스트해야합니다. 단일 요소의 경우 IWebElement을 사용하십시오. 여러 결과에 대한 한 가지 트릭은 객체 대신 실제 배열을 반환하도록 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);