gpt4 book ai didi

java - 在 Java 中获取一个空的 JavaScript 数组(Selenium 测试)

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:03:40 25 4
gpt4 key购买 nike

我需要在 Java 变量中的 JavaScript 脚本中声明一个空数组。

JavaScript 数组在网页上是这样声明的:

tc_vars["products"] = new Array();

(我只需要 products 的数组,而不是 tc_vars 数组)。

这就是我尝试在 Java 中获取此变量的方式:

Object[] value = (Object[]) js.executeScript("return tc_vars['products'];");

(其中 js 是与 Selenium WebDriver 关联的 JavascriptExecutor)。

我通常使用这种方法获取字符串没有问题,但它似乎不适用于空数组。此外,我没有任何错误消息,WebDriver 只是崩溃了。

executeScript 方法返回一个Object 变量。将其转换为 String(当 JS 变量为 String 时)效果很好,但我没有机会将此空数组转换为 String[]Object [].

最佳答案

正如我在评论中提到的,您需要确保您确实有权访问 tc_vars['products']在您要测试的位置。例如,手动打开浏览器,到达页面中您将使用 selenium 请求该值的位置,打开 devtools javascript 控制台并检查 tc_vars 的值。如果它对您不可用,则 selenium webdriver 也将不可用。

第二件事是对于数组,selenium webdriver(至少最新版本:2.42.2)返回 ArrayList<Object>而不是 Object[] .所以你的类型转换应该是:

ArrayList<Object> o = (ArrayList<Object>) js.executeScript("return tc_vars['products'];");

关于java - 在 Java 中获取一个空的 JavaScript 数组(Selenium 测试),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25077282/

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