2011-05-04 47 views
0

我想使用WebDriver在我測試的應用程序上執行一些JavaScript。 使用以下代碼即可:executeScript WebDriver

JavascriptExecutor js = (JavascriptExecutor) driver; 
String label = (String)js.executeScript("return document.g.nodes[1].label", null); 

g全局JavaScript對象在頁面中。如果我從控制檯使用檢查元素檢查它,我發現一切都在那裏... 雖然當我執行這個腳本時,我會拋出一個異常,指出「無法從未定義的創建節點屬性」。

女巫g是由於某種原因未定義在頁面中。

任何人有什麼想法?

它沒有時間問題,因爲我在調試工作和手動wating頁面加載完成。

謝謝

回答

1

JavaScript對象不是附加到窗口而不是文檔?

至少我一直使用window.wd來自webdriver,它很好地工作。

+0

是什麼窗口和文檔之間的區別? document.activeElement和window.activeElement之間的更精確的區別 – 2012-08-07 08:18:23

-1

我覺得這個線程可能會有所幫助。如果你對eval不熟悉,似乎有一種更簡單的方法。

鏈接引用ScriptEngineManager。

ScriptEngineManager manager = new ScriptEngineManager(); 
ScriptEngine engine = manager.getEngineByName("js");   
Object result = engine.eval("3+4"); 

Is there an eval() function in Java?

+0

鏈接不允許作爲棧溢出的答案。您還需要包含鏈接中的重要內容。 – BradleyDotNET 2014-06-20 19:55:37

+0

感謝protip。我編輯了答案。希望它有幫助。 – 2014-06-20 20:09:33

相關問題