JavascriptExecutor executeScript不返回

时间:2018-08-08 21:56:04

标签: java selenium selenium-webdriver

如何在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元素

1 个答案:

答案 0 :(得分:0)

如果需要打印Webelement的值,只需使用getText()。

System.out.println(res.getText());

或者,如果您想知道属性的值,请像这样使用getAttribute()方法。

System.out.println(res.getAttribute("href"));

上面的代码将打印href属性。同样,根据您的需要对其进行自定义。