JavaScript输出到字符串

JavaScript输出到字符串,java,javascript,selenium-webdriver,Java,Javascript,Selenium Webdriver,是否可以在java中将javascript输出提取为字符串。我正在使用SeleniumWebDriver,我希望列出我希望使用javascript的所有子节点。我正在使用JavascriptExecutor功能。我想要这样的东西 JavascriptExecutor js = (JavascriptExecutor)LaunchBrowserTest.driver; List<String> s = (List<String>)(js.executeScript(" va

是否可以在java中将javascript输出提取为字符串。我正在使用SeleniumWebDriver,我希望列出我希望使用javascript的所有子节点。我正在使用JavascriptExecutor功能。我想要这样的东西

JavascriptExecutor js = (JavascriptExecutor)LaunchBrowserTest.driver;
List<String> s = (List<String>)(js.executeScript(" var text = 'aa'; "
            + "var list = document.getElementById('jstree'); "
            + "var anchorlist = document.getElementsByTagName('a'); "
            + "for( i = 0; i < anchorlist.length; i++ ) "
            + "{ "
            + "text = text + anchorlist[i].innerHTML; "
            + "};"
            + "console.log(text);"));
 System.out.println("String Array: " + s );

如果您查看SeleniumJavaScriptExecutor的文档并查找executeScript方法,您将看到Javascript必须在 为了赶上Java本身

您可以看到,如果JS脚本返回,您将在Java中获得什么样的数据类型 什么都行


我希望这能帮助你,祝你好运。

我需要添加返回文本;以使其代替console.logtext工作。我试图将控制台输出写入某个字符串。谢谢你指出。对上面的代码进行了更改,以指向要返回的正确语句。
WebElement element = driver.findElement(By.linkText(s[i])); where i < s.length
  JavascriptExecutor js = (JavascriptExecutor)LaunchBrowserTest.driver;
    List<String> s = (List<String>)(js.executeScript(" var text = 'aa'; "
                + "var list = document.getElementById('jstree'); "
                + "var anchorlist = document.getElementsByTagName('a'); "
                + "for( i = 0; i < anchorlist.length; i++ ) "
                + "{ "
                + "text = text + anchorlist[i].innerHTML; "
                + "};"
                + "return text;"));
     System.out.println("String Array: " + s );