gpt4 book ai didi

javascript - 从 Selenium Webdriver 中的 JQuery 脚本返回值

转载 作者:行者123 更新时间:2023-11-30 14:50:14 26 4
gpt4 key购买 nike

我在通过 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');"

执行这样的脚本并获取一个 WebElements 数组,从中可以获取属性:

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

关于javascript - 从 Selenium Webdriver 中的 JQuery 脚本返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48250615/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com