JavascriptExecutorexecuteScript 不返回

标签 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 元素

最佳答案

如果您需要打印 web 元素的值,只需使用 getText() 即可。

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

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

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

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

关于JavascriptExecutorexecuteScript 不返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51756204/

相关文章:

selenium - count(*)> xpath 构建中的表达式

Java (Selenium WebDriver) - 如何编写紧凑的代码

java - 具有 persistence.xml 和属性映射的 JPA EntityManagerFactory

java - Selenium 在 IE 中的截图

java - 如果唯一标识符位于同级元素中,则用于单击链接的 xpath 表达式

python - 如何从html中提取数字?

javascript - 在 selenium python 中单击 slider 按钮

java - 无法创建 PoolableConnectionFactory (未知数据库 'database' )

java - 在 Java 中对导入进行分组

java - 在 JList 中选择值后出现 JButton