我想使用WebDriver在我正在测试的应用程序上执行一些javascripts。 我使用以下代码:
JavascriptExecutor js = (JavascriptExecutor) driver;
String label = (String)js.executeScript("return document.g.nodes[1].label", null);
页面中的全局javascript对象。如果我使用检查元件从控制台检查它,我发现一切都在那里...... 虽然当我执行这个脚本时,我引发了一个异常,声明“无法从未定义创建节点属性”。
Witch g由于某种原因在页面中未定义。
有人有什么想法吗?
它不是时间问题,因为我在调试中工作并手动地为页面加载完全加载。
感谢
答案 0 :(得分:1)
是不是javascript对象附加到窗口而不是文档?
至少我一直使用window.whatever来自webdriver并且效果很好。
答案 1 :(得分:-1)
我认为这个帖子可能会有所帮助。如果你不熟悉eval,似乎有一种更简单的方法。
该链接指的是ScriptEngineManager。
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
Object result = engine.eval("3+4");