2016-06-08 103 views
0

嗨,我是新的Selenium Webdriver。我可以成功打開一個網頁並找到它的元素。Selenium Webdriver不返回Javascript代碼

在一種情況下,我注意到有一個頁面上的鏈接可以在一段時間後變爲可點擊。在「腳本」選項卡上的Firebug中,我可以看到定時器功能的JavaScript代碼。

但使用硒的webdriver如果我發出:

driver.PageSource 

我無法看到的JavaScript源代碼。延遲30秒後請求源代碼沒有任何區別。我試圖找到它與各種通過選項使用:

driver.FindElement 

等,但它不存在。

螢火蟲如何設法找到並顯示Javascript源代碼?有沒有一種方法可以強制Selenium Webdriver返回頁面引用的所有代碼?

還是有更好的方法?

感謝您的任何建議!

編輯---------------------

我試圖在Firefox如下:

Dim Driver2 As IWebDriver = New Chrome.ChromeDriver 
Driver2.Url = "http://mypage" 
Dim js As IJavaScriptExecutor = TryCast(Driver2, IJavaScriptExecutor) 
Dim title As String = DirectCast(js.ExecuteScript("return JSON.stringify(window)"), String) 

和我

權限被拒絕訪問屬性「的toJSON」

,我讀了在Firefox中這不會工作,所以我在Chrome試過了,得到

從訪問 跨域框架

,並從那裏沒有解決方案,因爲根據this它的安全限制,顯然你不能訪問封閉原點「http://mypage」框架用Javascript

我開始認爲我在這裏深深地感到了一點點。

回答

0

PageSource可能不會返回DOM &等

您可以使用JavaScript driver.executeScript()但分析返回對象的負擔可能是令人沮喪的,而不是檢查的精確快照。

不管 - 這是一個人爲的例子:

Object result = driver.executeScript("return JSON.stringify(window)"); 
System.out.println(result.toString()); 
+0

非常感謝您的回答。我試過這個,但遇到了一些問題,請參閱修改後的問題。 – TripleAntigen

相關問題