Chrome 开发者工具用户代理覆盖在模拟其他浏览器时的效果如何?

Posted

技术标签:

【中文标题】Chrome 开发者工具用户代理覆盖在模拟其他浏览器时的效果如何?【英文标题】:How effective is the Chrome developer tools user-agent override at emulating other browsers? 【发布时间】:2013-04-15 22:23:38 【问题描述】:

Chrome 开发人员工具具有将用户代理更改为欺骗服务器的功能,使开发人员能够测试其他设备和浏览器的应用程序,而无需将 Chrome 浏览器的舒适性留在桌面终端上。我假设 Chrome 模拟这些其他浏览器,而不是虚拟地模拟它们。 Chrome 在 javascript、CSS 和其他技术浏览器差异方面的标准符合程度如何?例如,有没有人做过全面的测试来确定 Internet Explorer 7 的 Chrome 模拟和实际的 Internet Explorer 7 是否呈现相同的页面,逐个像素?

【问题讨论】:

acid3.acidtests.org的IE8(使用IE9的浏览器模式切换)渲染与本站chrome的IE仿真渲染对比后,测试结果有较大差异。 【参考方案1】:

当用户代理字符串更改时,Chrome 确实不会尝试模拟其他浏览器。 要验证此断言,只需使用 Internet Explorer 特有的功能,例如条件编译、条件 cmets、ActiveX、VB 脚本……这些在 Chrome 中都不起作用。

如果您想让 Chrome 像 Internet Explorer 一样呈现页面,请安装 IE Tab Chrome extension。但需要现有 Internet Explorer 安装,这意味着不支持 Linux 和 Mac 等非 Windows 操作系统。

【讨论】:

布局确实发生了变化......那么覆盖在做什么?能详细点吗? Override 仅更改用户代理(User-Agent 请求头和navigator.userAgent / navigator.appVersion。如果您看到不同的内容,这是由user agent sniffing 引起的。

以上是关于Chrome 开发者工具用户代理覆盖在模拟其他浏览器时的效果如何?的主要内容,如果未能解决你的问题,请参考以下文章

ui自动化,主流浏览器, Java

如何手动模拟 websocket 断开连接? (Firefox 或 Chrome 开发工具)

如何在 Chrome 上模拟 iOS 用户代理,以启用 Apple Pay 显示?

chrome浏览器怎么模拟手机访问网页

如何在 Chrome 中覆盖用户代理样式表并正确显示我的设计

Selenium使用Chrome模拟手机浏览器方法解析