在PhantomJS中改变用户代理设置是否会改变屏幕捕捉/截图的角度?[英] Does changing the user-agent setting in PhantomJS change the perspective of the screen capture/screenshot?

问题描述

我对使用 PhantomJS 比较陌生,并且想截取我们网站的屏幕截图以便稍后进行比较.我很想知道更改用户代理设置是否会影响屏幕截图的视角(即图像会出现不同)?- 如果不是,您如何建议我模拟不同浏览器的屏幕截图(希望使用 Phantom,但欢迎提出建议)?

// 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();
});

链接到 HTML/CSS下面使用和引用的代码

是的,我已经通过更改用户代理属性进行了测试,并截取了屏幕截图进行确认(上面的代码).我们的网站定义明确,一般不会因浏览器而异,所以这更多是预防措施.- 我还尝试进行更改,故意使网站在不同的浏览器中使用时看起来不同.无论我进行什么更改,它们似乎仍然以相同的方式被 PhantomJS 捕获.

** 免责声明:如前所述,我对 PhantomJS 比较陌生.我已经阅读了很多文档和相关帖子,但还没有真正找到我的问题的答案.我也是一名新的网络开发人员(做过很多后端编程,所以我不一定是新手程序员)所以也许我的"故意"更改不正确?或者,也许我没有以正确的方式使用 user-agent 属性?

如果我可以更具体一些,请告诉我.- 任何/所有帮助将不胜感激!

推荐答案

它当然可以以不同的方式出现.默认情况下,某些 Web 服务器会以固定宽度的页面进行响应.如果您专门设置 Web 服务器已知的用户代理字符串并表示移动浏览器,您可能会获得页面的小屏幕优化版本.

PhantomJS 的默认视口为 400 x 300 像素.这意味着页面的移动版本可能会按预期呈现.固定宽度的页面可以增加视口大小.

并非所有网站都会根据用户代理字符串做出不同的反应.请记住,如果您在多个脚本执行期间截取屏幕截图而不进行任何更改,则该页面的外观可能会有所不同,因为某些页面和广告会经常更改.

本文地址:https://www.itbaoku.cn/post/1740099.html