1、driver(调用浏览器console执行)
WebDriver driver = BrowserDriverUtil.getDriver();
JavascriptExecutor driver_js = (JavascriptExecutor) driver;
Object obj = driver_js.executeScript("js代码");
System.out.println(obj);
2、jdk1.8自带引擎执行
String routeScript="js方法";
String scriptResult ="";//脚本的执行结果
ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");//1.得到脚本引擎
try {
//2.引擎读取 脚本字符串
engine.eval(new StringReader(routeScript));
//如果js存在文件里,举例
// Resource aesJs = new ClassPathResource("js/aes.js");
// this.engine.eval(new FileReader(aesJs.getFile()));
//3.将引擎转换为Invocable,这样才可以掉用js的方法
Invocable invocable = (Invocable) engine;
//4.使用 invocable.invokeFunction掉用js脚本里的方法,第一個参数为方法名,后面的参数为被调用的js方法的入参
scriptResult = (String) invocable.invokeFunction("getRouteInfo", "henan");
}catch(ScriptException e) {
e.printStackTrace();
}
参考:https://www.cnblogs.com/codeya/p/java_call_js.html