如何在 webDriver 中执行并获取 res
的值
for (WebElement elems:links){
JavascriptExecutor js = (JavascriptExecutor) driver;
String script =
"function tryRecursiveSearch (node) { "+
" var child "+
" for (var i = 0; i < node.children.length; i++) { "+
" var len = node.children.length;"+
" child = node.children[i];"+
" if (child.tagName === 'A'){ "+
" return child "+
" } "+
" else { "+
" return tryRecursiveSearch (child); "+
" } "+
" } "+
"} " ;
WebElement res = (WebElement)js.executeScript("tryRecursiveSearch(argument[0])",elems); // it exits here , gives no error
System.out.println(res); //doesnt print anything
}
当我在浏览器控制台中运行 JavaScript 代码并传递元素时,它会正确返回 a
元素
最佳答案
如果您需要打印 web 元素的值,只需使用 getText() 即可。
System.out.println(res.getText());
或者,如果您想知道属性的值,请像这样使用 getAttribute() 方法..
System.out.println(res.getAttribute("href"));
上面的代码将打印href的属性。同样,根据您的需要进行定制。
关于JavascriptExecutorexecuteScript 不返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51756204/