2016-09-24 80 views
1

我對PhantomJS的使用比較陌生,想稍後對我們網站的屏幕截圖進行分析。我很想知道的是,更改用戶代理設置是否會影響屏幕截圖的角度(即圖像是否會顯示不同)? - 如果不行,你會如何建議我能夠截取模擬不同瀏覽器的截圖(希望使用Phantom,但願意接受建議)?更改PhantomJS中的用戶代理設置是否更改屏幕截圖/屏幕截圖的視角?

// PhantomJS Code 
page = require('webpage').create(); 
// Used for Firebird (old Firefox) 
page.settings.userAgent = 'Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.5) Gecko/20031007 Firebird/0.7'; 
// Used for Chrome 
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36'; 
page.viewportSize = {width: 1200, height : 800}; 
page.open("webAddress", function() { 
    page.render(picName); 
    pahntom.exit(); 
}); 

Link to HTML/CSS code used and referenced below

是,我已通過改變用戶代理屬性測試,並且已採取截圖確認(代碼上文)。我們的網站是精心定義的,並且通常不會從瀏覽器更改爲瀏覽器,所以這更多是預防措施。 - 我也嘗試進行更改,以便在不同瀏覽器中使用時故意使網站看起來不同。無論我改變什麼,PhantomJS仍然以相同的方式捕捉它們。

**免責聲明:如前所述,我對PhantomJS來說是比較新的。我已閱讀了大部分文檔和相關帖子,但還沒有真正找到我的問題的答案。我也是一個新的Web開發人員(做了很多後端編程,所以我不一定是新手程序員),所以也許我的「故意」更改是不正確的?或者,也許我沒有以正確的方式使用用戶代理屬性?

請讓我知道,如果我可以更具體。 - 任何/所有的幫助將不勝感激!

+0

它當然*可以*出現不同。 –

回答

0

當然可以出現不同。一些網絡服務器默認使用固定寬度頁面進行響應。如果您專門設置了Web服務器已知的,代表移動瀏覽器的用戶代理字符串,則可能會獲得屏幕優化的小版本頁面。

PhantomJS具有400 x 300像素的默認視口。這意味着移動版本的頁面可能按預期呈現。固定寬度頁面可以增加視口大小。

根據用戶代理字符串的不同,並非所有網站的反應都不同。請記住,如果您在多個腳本執行過程中進行截圖而不更改任何內容,則該頁面可能會有所不同,因爲某些頁面以及廣告會頻繁更改。

+0

謝謝! - 我實際上設置了自己的視口設置。這會在更改用戶代理時防止來自各種瀏覽器的不同結果嗎? 我問的原因是我在上面跑過的測試的b/c。我使用了Chrome瀏覽器用戶代理,然後使用移動Safari瀏覽器用戶代理。但是,結果看起來完全相同。也許這是B/C我定義了視口? – SeanRamzan

+0

有些網站根本不嗅探用戶代理字符串,而是依靠使用響應式設計的視口大小。 –

+0

啊,我看到了,所以這可能是問題。 - 非常感謝@Artjom的幫助,它確實有助於清理事情! – SeanRamzan