当从终端触发ant脚本时,Safari浏览器测试用例正常工作。但是,当从Jenkins触发ant脚本时,相同的测试失败。 PS错误日志提到。请让我知道您的观点。
错误日志:
[testng] ===============================================
[testng] Suite
[testng] Total tests run: 1, Failures: 0, Skips: 1
[testng] Configuration Failures: 1, Skips: 1
[testng] ===============================================
[testng] Nov 18, 2014 6:29:32 PM org.openqa.selenium.safari.SafariDriverServer start
[testng] INFO: Server started on port 6225
[testng] The tests failed.
谢谢你,桑德
答案 0 :(得分:1)
Jenkins无法访问显示器。它是一个服务器应用程序。那说Jenkins无法启动Safari浏览器。但是,你可以做的是使用PhantomJS(http://phantomjs.org/)和GhostDriver(https://github.com/detro/ghostdriver)。这是一个功能齐全但根本没有GUI的浏览器。它将所有内容呈现为缓冲区。因此,您仍然可以截取屏幕截图并将其保存到文件中,但您无法实时查看浏览器窗口。
PhantomJS使用WebKit作为渲染引擎,因此Safari应该没什么区别。
Java中的设置与SafariDriver非常相似:
File phantomBin = new File("lib/test/phantomjs/bin/phantomjs");
// http://code.google.com/p/selenium/wiki/DesiredCapabilities
DesiredCapabilities capabilities = DesiredCapabilities.phantomjs();
capabilities.setCapability("phantomjs.binary.path", phantomBin.getAbsolutePath());
capabilities.setCapability("acceptSslCerts", true);
capabilities.setCapability("handlesAlerts", true);
capabilities.setJavascriptEnabled(true);
WebDriver driver = new PhantomJSDriver(capabilities);