[英]Return value from a JQuery script in Selenium Webdriver
我在通过Selenium Webdriver获取一些href时遇到了问题。 因此,我使用了JQuery脚本来实现它。
script =
"(function() {
var a = [];
$("a.class0.class1.link").each(function() {
a.push($(this).attr('href'));
});
return a;
})()";
通过这样的代码执行:
result = javascriptExecutor.executeScript(script)
但是结果为空值。 当我在Chrome控制台中运行该脚本时,我得到了正确的结果-href数组。 我做错了什么?
好的,我已经解决了问题。 有两种实现结果的方法-从链接获取href。
script = "return $('a.class0.class1.link');"
执行这样的脚本并获取一个WebElement数组,可以从中获取属性:
val js = browser.asInstanceOf[JavascriptExecutor]
val scriptResult = js.executeScript(script)
val result = ListBuffer.empty[String]
scriptResult.asInstanceOf[util.ArrayList[WebElement]].forEach(x => result +=
x.getAttribute("href"))
result.toList
或第二种方式-执行以下JQuery代码:
val script = "return (function() {var table = [];$('a.class0.class1.link').each(function() { table.push($(this).attr('href'));});return table;})();"
并收集结果:
val js = browser.asInstanceOf[JavascriptExecutor]
val scriptResult = js.executeScript(javascript)
scriptResult.asInstanceOf[util.ArrayList[String]].asScala.toList
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.