JavaScript输出到字符串
是否可以在java中将javascript输出提取为字符串。我正在使用SeleniumWebDriver,我希望列出我希望使用javascript的所有子节点。我正在使用JavascriptExecutor功能。我想要这样的东西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
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 );