2017-04-15 76 views
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對象。 有什麼想法?

+1

您並未等待腳本完成下載 –

回答

0

正如Andy Ray所評論的,VisualEvent腳本未完全加載。所以我通過睡硒線來解決它。

相關問題