Grid 平台历史
此文档先前位于 wiki 上
您可以阅读更多关于 Grid 2 的信息
Selenium Grid 平台
本节描述了用于配置 Selenium Grid 节点和 [DesiredCapabilities] 对象中的 PLATFORM 选项。
平台历史
当从 Grid 请求新的 WebDriver 会话时,用户可以指定远程浏览器的 [DesiredCapabilities]。诸如浏览器名称、版本和平台之类的东西是测试可以指定的选项列表中的一部分。指定所需。
以下代码演示了 Windows XP 平台上 Internet Explorer 版本 9 的 DesiredCapability
[[DesiredCapabilities]] capability = DesiredCapabilities.internetExplorer();
capability.setVersion("8");
capability.setPlatform(Platform.XP);
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capability);
请求具有指定 DesiredCapability 的新会话将发送到 Grid Hub,它将遍历所有已注册的节点,以查看是否有任何节点与测试给出的规范匹配。如果没有任何节点与规范匹配,则将返回 CapabilityNotPresentOnTheGridException。
一个常见的误解是,PLATFORM 决定了选择将在其上创建新会话的操作系统。在这种情况下,平台和操作系统是不同的,因此将平台指定为“Windows 2003 Server”不会允许您在 Windows XP、Vista 和 2003 服务器之间进行选择。这种误解可能源于 Mac OSX 和 Linux 等平台,其中平台名称与操作系统名称匹配。
在 Selenium Grid 的情况下,平台指的是 Driver Atoms 和 Web 浏览器之间底层的交互。基于 Mac OSX 和 Linux 的操作系统(Centos、Ubuntu、Debian 等)与 Firefox 和 Chrome 等 Web 浏览器具有相对稳定的通信。因此,平台名称很容易理解,如下例所示
capability.setPlatform(Platform.MAC); //Set platform to OSX
capability.setPlatform(Platform.LINUX); // Set platform to Linux based systems
在 Vista 发布之前,基于 Windows 的操作系统只有一个平台,如下所示
capability.setPlatform(Platform.WINDOWS); //Set platform to Windows
但是,随着 Windows Vista 中 UAC 的引入,WebDriver 和 Internet Explorer 之间的底层交互发生了重大变化。为了解决 UAC 约束,为具有基于 Windows 的操作系统的节点添加了一个新平台
capability.setPlatform(Platform.VISTA); //Set platform to VISTA
随着 Windows 8 的发布,WebDriver 与 Internet Explorer 通信的方式又发生了重大改动,因此为基于 Windows 8 的节点添加了一个新平台
capability.setPlatform(Platform.WIN8); //Set platform to Windows 8
与 Windows 8.1 的引入类似,在此示例中,平台设置为 Windows 8.1
capability.setPlatform(Platform.WIN8_1); //Set platform to Windows 8.1
操作系统平台
以下列表演示了一些操作系统及其所属的平台
MAC****所有 OSX 操作系统 LINUX Centos Ubuntu UNIXSolarisBSD XP Windows Server 2003 Windows XP Windows NT VISTAWindows VistaWindows 2008 Server****Windows 7 WIN8 Windows 2012 Server Windows 8 WIN8_1****Windows 8.1
系列
不同的平台被分组为平台“系列”。例如,Win8 和 XP 平台是 WINDOWS 系列的一部分。类似地,ANDROID 和 LINUX 是 UNIX 系列的一部分。
选择平台和平台系列
在 [DesiredCapabilities] 对象上设置平台时,我们可以设置单个平台或平台系列。例如
capability.setPlatform(Platform.VISTA); //Will return a node with Windows Vista or 2008 Server or Windows 7 Operating System.
capability.setPlatform(Platform.XP); //Will return a node with Windows XP or 2003 Server or Windows 2000 Professional Operating System.
capability.setPlatform(Platform.WINDOWS); //Will return a node with ANY Windows Operating System
更多信息
有关最新平台的更多信息,请查看此文件
org.openqa.selenium.Platform.java