Исключение в потоке "main" javax.script.ScriptException: sun.org.mozilla.javascript.EcmaError: ReferenceError: "document" не определено
Я хочу сделать следующие вещи
- Открыть URL с помощью Selenium
Используя ScriptEngine, вы хотите выполнить функцию Javascript, которая предоставляет все теги привязок на www.google.co.in:
package public; import javax.script.Invocable; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class InvokeScriptFunction { public static void main(String[] args) throws Exception { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("JavaScript"); WebDriver driver=new FirefoxDriver(); driver.get("http://www.google.co.in"); // JavaScript code in a String String script = "function hello() { print(document.anchors); }"; // evaluate script engine.eval(script); // javax.script.Invocable is an optional interface. // Check whether your script engine implements or not! // Note that the JavaScript engine implements Invocable interface. Invocable inv = (Invocable) engine; // invoke the global function named "hello" inv.invokeFunction("hello" ); } }
Я хочу получить доступ к элементам DOM через эту программу. Если я просто печатаю строку, то она работает нормально, но выдает следующее исключение:
Exception in thread "main" javax.script.ScriptException: sun.org.mozilla.javascript.EcmaError: ReferenceError: "document" is not defined. (<Unknown source>#1) in <Unknown source> at line number 1 at com.sun.script.javascript.RhinoScriptEngine.invoke(RhinoScriptEngine.java:300) at com.sun.script.javascript.RhinoScriptEngine.invokeFunction(RhinoScriptEngine.java:258) at publicc.InvokeScriptFunction.main(InvokeScriptFunction.java:32) Caused by: sun.org.mozilla.javascript.EcmaError: ReferenceError: "document" is not defined. (<Unknown source>#1) at sun.org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3785) at sun.org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3763) at sun.org.mozilla.javascript.ScriptRuntime.notFoundError(ScriptRuntime.java:3848) at sun.org.mozilla.javascript.ScriptRuntime.name(ScriptRuntime.java:1781) at sun.org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:1780) at sun.org.mozilla.javascript.Interpreter.interpret(Interpreter.java:854) at sun.org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:164) at sun.org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:426) at com.sun.script.javascript.RhinoScriptEngine$1.superDoTopCall(RhinoScriptEngine.java:116) at com.sun.script.javascript.RhinoScriptEngine$1.doTopCall(RhinoScriptEngine.java:109) at sun.org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3178) at sun.org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:162) at com.sun.script.javascript.RhinoScriptEngine.invoke(RhinoScriptEngine.java:294) ... 2 more