常规 BrowserSim
-
BrowserSim 是什么?
BrowserSim 是一款浏览器模拟器,它的主要目的是以一种快速、简单且跨平台的方式测试您的网络应用程序是否能在移动设备上正确呈现和运行。
-
我能用 BrowserSim 替代在真机或模拟器上进行的测试吗?
通过 BrowserSim,无需安装特定平台的模拟器或手动使用手机,即可在任何平台上轻松测试基本布局问题/情况。话虽如此,但它并非 100% 可靠,因为有很多不同品牌的/版本的手机,行为上将存在差异,因此,BrowserSim 不能替代真机或模拟手机上的测试。若要进行完全验证和测试,您应该在真机上进行测试。
-
BrowserSim 的工作原理是什么?
它封装了一个 WebKit 浏览器 (SWT WebKit 和 JavaFX WebView),并通过伪造内容和媒体请求头,使其以移动浏览器的形式进行响应和工作。
-
那么,BrowserSim 有两个网络引擎,对吧?
是的。在原始版本中只有一个网络引擎 - SWT WebKit。不幸的是,它有几个缺点。例如,在 Windows 上使用 SWT WebKit 要求用户安装 Apple Safari(提供 SWT WebKit 引擎),而 Apple Safari 现在已经はかなり过时了 - 2012 年 5 月 9 日是最后一次更新。此外,SWT WebKit 不支持调试应用程序接口。由于这些限制,决定添加 JavaFX 网络引擎支持。可通过“设置”选项卡中 BrowserSim 的首选项切换网络引擎
-
运行 BrowserSim 需要具备什么条件?
如果您想使用 JavaFX 网络引擎,您只需要在 Oracle JDK 版本 7 或更高版本(建议使用版本 8)运行 BrowserSim 即可。可以通过窗口 → 首选项 → JBoss 工具 → BrowserSim/CordovaSim指定 JDK
对于 SWT WebKit 网络引擎,不同平台的要求如下所示
- Windows
-
-
必须安装 Apple Safari(它为 BrowserSim 提供了 WebKit 引擎)。
-
- Linux
-
-
必须安装
WebKitGTK 1.2.0
或更高版本并在库 加载路径中可用。要做到这一点,请使用你的软件包管理器
Fedora、Red Hat Enterprise Linux (RHEL) -yum install libwebkitgtk-1.0.so.0
Ubuntu -apt-get install libwebkitgtk-1.0-0
-
- Mac OS X
-
-
开箱即用。
-
-
如何将 BrowserSim 添加到工具栏中?
转到窗口 → 自定透视图,然后选择
BrowserSim
下的命令组可用性
。然后它将通过“电话”图标在全局工具栏中可用
主要功能
-
我可以用 BrowserSim 调试吗?
是的,你可以,但只能使用支持调试器 API 的 JavaFX Web 引擎(Chrome浏览器是一个要求)。右键单击 BrowserSim → 调试 → 开发工具。将显示以下弹出窗口
在 Chrome 中打开 URL 并开始调试。
用于调试的 URL 只能在一个浏览器中打开。如果你在第二个浏览器中打开,该浏览器将保持空白状态。 SWT WebKit 无法处理调试器 API。但是,针对该 Web 引擎存在FireBug Lite菜单项,而不是开发工具。使用 FireBug Lite,你可以预览 HTML、CSS、DOM 和脚本。
-
如何为 BrowserSim 启用 LiveReload?
SWT WebKit 和 JavaFX Web 引擎都支持LiveReload。首先,你应该添加 LiveReload 服务器并启动它
-
打开
服务器
视图(窗口 → 显示视图 → 服务器)。 -
添加 LiveReload 服务器,该服务器在
基本
类别中可用之后右键单击 BrowserSim → 启用 LiveReload。就是这么多了——LiveReload 已启用!
如果你想在 JavaFX Web 引擎中使用LiveReload,你必须针对 Oracle JDK 8 运行 BrowserSim。附带 JDK 7 的 JavaFX 浏览器不支持websocket,这对于LiveReload功能至关重要。幸运的是,已在 JDK 8 中修复了此问题。 -
已知问题
-
开发工具调试器与 Oracle JDK 8u20 无法正常工作——JDK-8090205、JBIDE-18526
-
附带 Oracle JDK 7 的 JavaFx 不支持localStorage。幸运的是,已在 JDK 8 中修复了此问题——JDK-8101833
-
附带 Oracle JDK 7 的 JavaFx 不支持WebSocket,这对于LiveReload功能至关重要。因此,LiveReload不适用于 JavaFx Web 引擎的 Oracle JDK 7。幸运的是,已在 JDK 8 中修复了此问题——JDK-8097808
-
JavaFx HTML 5 Datum 和时间输入不能正常工作——JDK-8087937、JBIDE-17054
特定于平台的问题
-
是否可以在 Linux 上针对 GTK 3 运行 BrowserSim?
默认情况下,BrowserSim 与 GTK 2 同时启动。但是,有一个特定的 Linux 选项可用于 BrowserSim / CORDOVASIM 启动的进程启用 GTK 3,但 JavaFX Web 引擎将不可用。基本上,JavaFX 使用 GTK 2 库,并且在近期不太可能切换。此处的相关问题是 Jira 问题。
为了针对 GTK 3 运行 BrowserSim,必须安装 libwebkitgtk-3.0
。
Fedora、RHEL -yum install libwebkitgtk-3.0.so.0
-
我找不到 RHEL 7 上的 libwebkitgtk-1.0.so.0,我该怎么办?
由于 RHEL 7 没有 webkitgtk 包,您无法在 GTK2 下使用 SWT.WEBKIT 引擎启动 BrowserSim。您可以在 GTK2 下仅使用 JavaFX(需要 Oracle JDK)来启动 BrowserSim。
-
我找不到 RHEL 6 上的 libwebkitgtk-3.0.so.0,我该怎么办?
由于 RHEL 6 没有 webkitgtk3 包,您无法在 GTK3 下使用 SWT.WEBKIT 引擎启动 BrowserSim。您只能在 RHEL 6 中的 GTK2 下启动 BrowserSim。
-
我已在 Linux 上安装了 Oracle JDK,但我无法将 JavaFX 设为 Web 引擎,我该怎么办?
如果您通过包管理器(使用例如
yum install java-1.7.0-oracle-1.7.0
)安装了 Oracle JDK,您可能还需要安装 JavaFX 包。安装说明可能会随发行版而有所不同,但在 RHEL 上可以使用类似yum install java-1.7.0-oracle-javafx
的命令进行安装。