2016-09-24 50 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