2
因此,我發現如何使用JQuery查找東西並將其傳回Selenium C#中,但我得到它的工作,所以我認爲我會分享我發現的內容。Selenium將dom元素傳遞給JQuery,並將結果返回到C#
特別是:
- 如何從C#IWebElements傳遞給JQuery的?
- 如何從javascipt的結果中將對象數組返回到C#中?
因此,我發現如何使用JQuery查找東西並將其傳回Selenium C#中,但我得到它的工作,所以我認爲我會分享我發現的內容。Selenium將dom元素傳遞給JQuery,並將結果返回到C#
特別是:
回答我的問題在這裏:)
你可以通過webElements的JavaScript,並通過arguments
訪問它們。
要將結果返回到C#,必須將其轉換爲<IReadOnlyCollection<IWebElement>>
。對於單個元素,只需使用IWebElement
。多重結果的一個訣竅是你必須在JQuery結果上調用toArray
,以便它返回一個真數組而不是一個對象。
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);