【问题标题】:Selenium safari web driver doesn't launch safari browser using jenkins on MacSelenium safari web 驱动程序不会在 Mac 上使用 jenkins 启动 safari 浏览器
【发布时间】:2015-01-15 16:45:26
【问题描述】:

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

谢谢你,桑德

【问题讨论】:

    标签: java macos selenium jenkins safari


    【解决方案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);
    

    【讨论】:

    • 嘿休伯特,我知道 Jenkins 是一个服务器程序,它没有权限在 MAC 上启动 Safari。暂时将您的方法视为一种解决方法。谢谢你,桑迪普
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-27
    • 2018-04-02
    • 2019-03-13
    • 1970-01-01
    • 1970-01-01
    • 2017-09-07
    • 1970-01-01
    相关资源
    最近更新 更多