2011-05-18 104 views
6

我正在編寫一個程序來驗證遠程服務器上的網頁。它使用硒RC通過一系列測試運行Firefox,所以我可以調用任意的JavaScript。當出現故障時,我想記錄該頁面生成的HTML。現在,訪問DOM HTML很容易,但我很難找到一種方法來獲取源代碼。謝謝。使用javascript從Firefox獲取原始源代碼

我應該重申,我不是在尋找DOM,而是原始的未經修改的源代碼。通過右鍵單擊 - >查看頁面源可以看到。特別是如果 <Html> <body> <table> <tr> <td> fear the table data </td> </table>

是真正的HTML。調用document.documentElement.outerHTML || document.documentElement.innerHTMLselenium.getHTMLSource()將導致<head> </head><body> <table> <tbody><tr> <td> fear the table data </td> </tr></tbody></table> </body>

+0

我目前正在通過額外的請求使用http庫來做到這一點,所以每個頁面實際獲取兩次:使用硒和不使用。另外我經常注意到,在Firefox中查看頁面源代碼有一些滯後性,顯然瀏覽器在引擎蓋下是一樣的。 – 2016-03-01 14:54:53

回答

2

XHR請求的源相同的頁面,只是檢查document.documentElement.outerHTML || document.documentElement.innerHTML對當前狀態的來源。

+1

但是。我正在尋找原始的未修改的html源代碼。 – Mark 2011-05-20 16:40:20

+0

我說過「XHR請求相同頁面的來源」。 – 2011-05-20 19:56:58

+0

我可能(更可能)錯過了一些東西,但是如果頁面是動態的,它不一定會重新加載導致錯誤的相同html。 – Mark 2011-05-23 20:42:33

-1

你嘗試過作爲

document.documentElement.innerHTML; 
+0

。 – Mark 2011-05-20 14:49:03

-1

既然你也使用硒,您可以用selenium.getHTMLSource()這樣簡單的事情。這將返回整個源頁面內容。

+1

這就是我在測試之前所假設的。調用實際上可能通過document.documentElement.innerHTML獲取DOM的html版本;呼叫。 – Mark 2011-05-20 14:51:22