警报正在打印 [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/