2013-07-18 42 views
2

我是Selenium的新手,想知道是否有人能指出我正確的方向。InternetExplorerDriver getPageSource()返回的字符串不同於FirefoxDriver

我想獲取頁面的頁面源,但我注意到IE驅動程序返回的東西 不同於FirefoxDriver。

此外,InternetExplorerDriver.getPageSource()返回的字符串與我在IE上單擊查看頁面源時看到的字符串不同。

我運行IE 8和Firefox 22

對於樣品此頁上:http://stackoverflow.com/questions/16455217/webdriver-save-the-location-of-the-id-in-the-page

當我打電話getPageSource(),IE返回類似這樣的。

"<HTML><HEAD><TITLE>selenium - Webdriver/Save the location of the ID in the page - Stack Overflow</TITLE><LINK rel="shortcut icon" href="https://cdn.sstatic.net/stackoverflow/img/favicon.ico"><LINK rel="apple-touch-icon image_src" href="https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png"> 

雖然Firefox返回了這個。

"<!DOCTYPE html> 

<title>selenium - Webdriver/Save the location of the ID in the page - Stack Overflow</title> 
<link href="https://cdn.sstatic.net/stackoverflow/img/favicon.ico" rel="shortcut icon" /> 
<link href="https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png" rel="apple-touch-icon image_src" /> 

是否有IEDriver的方式相同的方式爲FirefoxDriver返回pageSource?

回答

6

不,這是因爲getPageSource方法不會返回頁面源代碼,因爲它會在瀏覽器中手動執行,但會返回DOM的文本表示形式。 Javadoc of getPageSource更好地解釋它:

java.lang.String getPageSource()

獲取最後加載頁面的源代碼。如果頁面在加載(例如,通過Javascript)後被修改爲 ,則不能保證 返回的文本是修改頁面的文本。請參閱 正在使用的特定驅動程序的文檔,以確定返回的文本是否反映了網頁當前的狀態或上次由Web服務器發送的文本 。 返回的頁面源代碼是一個 表示底層的DOM:不要期望它被格式化爲 或以與從Web服務器發送的響應相同的方式轉義。 把它當作藝術家的印象。

相關問題