警报正在打印[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),然后结束循环并显示出来。
最佳答案
您需要直接在toString()
上调用elemID
。
请尝试以下代码:
for (WebElement el : listOfElem){
String elemID = el.getAttribute("id");
Javascriptexecutor js = (Javascriptexecutor) driver;
String strg = (String) js.executeScript("alert("+elemID.toString()+");");
}