javascript - 在 javascript 中使用 java 变量 - webDriver

标签 javascript java for-loop

警报正在打印 [object],而不是每次迭代的 elemID 值。

for (WebElement el : listOfElem){
    String elemID = el.getAttribute("id");
    Javascriptexecutor js = (Javascriptexecutor) driver;
    String strg = (String) js.executeScript("alert("+elemID+");");
}

我还尝试了下面的代码:

String strg = (String)js.executeScript("alert("+elemID+");").toString();

这也会打印 [object] (只是注意:使用 toString() 会破坏循环,不知道为什么)

如何在每次迭代中打印 elemID 的值?

如果我在 JavaScript 之外打印 elemID,它会打印该值,但我希望它在 JavaScript 内部。

<小时/>

编辑: 如果我这样做

for (WebElement el : listOfElem){
    String elemID = el.getAttribute("id");
    System.out.println(elemID);
    Javascriptexecutor js = (Javascriptexecutor) driver;
    String strg = (String) js.executeScript("alert("+elemID+");");
    System.out.println(strg);
}

它正确打印第一个 System.out 的值,但其余迭代打印 null

如果我按照评论中的建议使用下面

String strg = (String) js.executeScript("console.log("+elemID+");"); 在上面编辑的代码中

它打印值(第一个 Sys.out),就是这样,之后它打破循环并输出。

最佳答案

您需要直接在elemID上调用toString()

请尝试以下代码:

for (WebElement el : listOfElem){
    String elemID = el.getAttribute("id");
    Javascriptexecutor js = (Javascriptexecutor) driver;
    String strg = (String) js.executeScript("alert("+elemID.toString()+");");
}

关于javascript - 在 javascript 中使用 java 变量 - webDriver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51678883/

相关文章:

java - 我们可以在移动到android中的下一次迭代之前制作一个for循环以在每次迭代中获取用户输入吗

javascript - Javascript for 循环中的 Ajax 请求

bash - 如何在 bash for 循环中设置变量?

java - Powermock mockstatic 不能继承最终类

javascript - 如何在 vis.js 时间轴中对嵌套组进行排序?

javascript - Highcharts:将鼠标悬停在图例上时更改折线图中的悬停样式

javascript - 对象的第一个结果返回未定义

java - 为什么实现接口(interface)的类不能使用 Java 中该接口(interface)的静态方法?

java.awt.Toolkit beep() 错误

javascript - 在弹出函数中运行 AJAX?