在Windows Server 2008上运行Selenium

4

我正在尝试自动化一些Selenium测试。

我可以在本地机器上运行它们,但是当我尝试在Windows Server 2008上运行它们(这是我们的CI服务器运行的服务器)时,只有当我使用管理员特权打开cmd行时Firefox窗口才会打开。我不想以管理员权限运行此程序,所以问题是:我需要做什么才能让普通用户打开Firefox窗口?

1个回答

2

你对此无能为力。从Windows Vista开始,微软锁定了“可交互”会话,因此在服务中运行WebDriver网格集线器并启动桌面会话中的浏览器将不起作用,除非您使用Windows XP。因此,您需要在Windows 2008中运行多个网格节点,并保留这些桌面会话处于打开状态。此外,在Jenkins中,运行Selenium测试(没有网格)将展示相同的问题,您需要在前台运行Jenkins。

Windows说:“默认情况下,服务使用非交互式窗口站点,并且不能与用户交互。但是,交互式服务可以显示用户界面并接收用户输入。” 此外,“所有服务都在终端服务会话0中运行。因此,如果交互式服务显示用户界面,则仅对连接到会话0的用户可见。” 请参见this site获取此信息。

“圣杯”将是编写使用SystemTray的Java程序,然后在桌面会话启动时自动启动前台的网格节点会话。这只是一个想法,因为VisGrid无法实现此功能。
在Linux上,有一种方法可以使用xvfb将网格作为服务运行,并在无头会话中运行浏览器,但我认为它是一个复杂的设置,我从未尝试过。无论如何,这与Windows情况没有太大区别,我认为Windows设置更容易。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接