0
我是新来的硒和JavaScript。 我想加载一个名为VisualEvent的JavaScript到在硒控制浏览器中打开的页面。然后从java中的硒访问它的变量。 第一阶段是由以下完全可以做到的:从硒访问窗口对象
driver = new FirefoxDriver();
driver.get("http://stackoverflow.com/");
String script = //Minified of below script
//////////////
(function() {
var protocol = window.location.protocol === 'file:' ? 'http:' : '';
var url = protocol + '//www.sprymedia.co.uk/VisualEvent/VisualEvent_Loader.js';
if (typeof VisualEvent != 'undefined') {
if (VisualEvent.instance !== null) {
VisualEvent.close();
} else {
new VisualEvent();
}
} else {
var n = document.createElement('script');
n.setAttribute('language', 'JavaScript');
n.setAttribute('src', url + '?rand=' + new Date().getTime());
document.body.appendChild(n);
}
})();
///////////////////////
Object[] a = { null, null, null };
driver.executeScript(script, a);
但是,当我要访问window.VisualEvent
:
script = "return window.VisualEvent.instance;";
Object b = driver.executeScript(script, a);
这execption抛出:
Exception in thread "main" org.openqa.selenium.JavascriptException: TypeError: window.VisualEvent is undefined
,当我在同一个执行此同时,浏览器控制台,我会得到参考。 此外,我有权访问硒的winow.document
对象。 有什么想法?
您并未等待脚本完成下载 –