所以我在查找如何使用JQuery查找内容并将其传递给Selenium C#时遇到了一些麻烦,但我确实让它工作了,所以我想我会分享我发现的东西.
特别是:
>如何将IWebElements从C#传递给JQuery?
>如何从javascipt的结果中将一个对象数组返回到C#中?
解决方法:
在这里回答我自己的问题:)
您可以将webElements传递给javascript并通过参数访问它们.
要将结果返回到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);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。