我正在尝试自动化一些硒测试.
我可以在我的机器上本地运行它们,但是当我尝试在
Windows Server 2008(我们的CI服务器运行的服务器)中运行它们时,只有在我打开具有管理员权限的cmd行时才会打开Firefox窗口.我不想以管理员权限运行,所以问题是:我需要做些什么才能与常规用户一起打开Firefox窗口? 最佳答案 你无能为力.从Windows Vista开始,Microsoft锁定了“可交互”会话,因此运行WebDriver网格集线器作为在桌面会话中启动浏览器的服务将无法工作,除非您使用的是Windows XP.因此,您需要做的是在前台运行多个网格节点,并在Windows 2008中打开这些桌面会话.此外,使用Jenkins,运行Selenium测试(没有网格)将显示相同的问题,您必须在前台运行jenkins.
Windows说“默认情况下,服务使用非交互式窗口站,无法与用户交互.但是,交互式服务可以显示用户界面并接收用户输入.”此外,“所有服务都在终端服务会话0中运行.因此,如果交互式服务显示用户界面,则仅对连接到会话0的用户可见.”有关此信息,请参阅this site.
圣杯将是使用SystemTray编写Java程序,然后托盘应用程序在桌面会话启动时在前台自动启动网格节点会话.自VisGrid以来只是一个想法不能做到这一点.
在Linux上,有一种方法可以使用xvfb将网格作为服务运行并在无头会话中运行浏览器,但我认为这是一个复杂的设置,我从未尝试过.无论如何,Windows情况并没有太大的不同,我认为Windows设置更容易.