Selenium safari网络驱动程序不会在Mac上使用jenkins启动safari浏览器

时间:2014-11-18 13:15:36

标签: java macos selenium jenkins safari

当从终端触发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.

谢谢你,桑德

1 个答案:

答案 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);