我有两个运行Windows Server 2012的虚拟机。一个运行Jenkins,另一个运行Jenkins的构建作业之一。作业从Subversion中检出测试代码,然后mvn test-Dtest=com.package.name.TestName在Windows批处理脚本中运行。该测试可以编译并运行,但是会失败,并显示ElementNotVisibleException。这些是使用Selenium和Firefox驱动程序的TestNG测试。
mvn test-Dtest=com.package.name.TestName
ElementNotVisibleException
如果我使用完全相同的命令并从Windows命令行运行它,则测试成功。我注意到的另一件事是,从命令行运行时,浏览器窗口出现,并且我可以观察它在测试中的运行情况,但是当由Jenkins运行时,没有窗口出现。
我发现这个问题表明这是因为我们的Jenkins是作为服务运行的,并且编写测试时需要在前台使用浏览器窗口。更改测试以使用无头驱动程序不是我们的选择,因为这将导致测试结果不准确。有没有办法让这些测试与詹金斯一起工作?
我建议使用Selenium Grid。它的显式功能是同时服务几个不同的测试。
您的詹金斯将针对网格触发测试,该测试会将所有测试指向您的节点。