【发布时间】:2014-04-28 17:58:25
【问题描述】:
我正在尝试自动化一些硒测试。 我可以在我的机器上本地运行它们,但是当我尝试在 windows server 2008(运行我们的 CI 服务器的服务器)中运行它们时,只有当我以管理员权限打开 cmd 行时,Firefox 窗口才会打开。我不希望它以管理员权限运行,所以问题是:我需要做什么才能以普通用户打开 Firefox 窗口?
【问题讨论】:
标签: selenium windows-server-2008
我正在尝试自动化一些硒测试。 我可以在我的机器上本地运行它们,但是当我尝试在 windows server 2008(运行我们的 CI 服务器的服务器)中运行它们时,只有当我以管理员权限打开 cmd 行时,Firefox 窗口才会打开。我不希望它以管理员权限运行,所以问题是:我需要做什么才能以普通用户打开 Firefox 窗口?
【问题讨论】:
标签: selenium windows-server-2008
对此你无能为力。从 Windows Vista 开始,Microsoft 锁定了“可交互”会话,因此将 WebDriver 网格集线器作为在桌面会话中启动浏览器的服务将无法运行,除非您使用的是 Windows XP。因此,您需要做的是让多个网格节点在前台运行,并在 Windows 2008 中保持这些桌面会话处于打开状态。此外,使用 Jenkins,运行 Selenium 测试(没有网格)将出现您必须执行的相同问题在前台运行 Jenkins。
Windows 说“默认情况下,服务使用非交互式窗口站,不能与用户交互。但是,交互式服务可以显示用户界面并接收用户输入。”。此外,“所有服务都在终端服务会话 0 中运行。因此,如果交互式服务显示用户界面,则它仅对连接到会话 0 的用户可见。”有关此信息,请参阅 this site。
圣杯是使用SystemTray 编写Java 程序,然后在桌面会话启动时让托盘应用程序在前台自动启动网格节点会话。只是一个想法,因为VisGrid 无法做到这一点。
在 Linux 上,有一种方法可以使用 xvfb 将网格作为服务运行并在无头会话中运行浏览器,但我认为这是一个复杂的设置,我从未尝试过。无论如何,Windows 的情况并没有太大的不同,我认为 Windows 设置更容易。
【讨论】: