如何在本地使用FirefoxDriver和在CI上使用RemoteWebDriver

时间:2015-10-05 15:31:20

标签: selenium-webdriver playframework-2.3

我正在使用playframework 2.3。

当测试在CI env(Travis)上运行时,是否有方便的方法在本地使用FirefoxDriverRemoteWebDriver

经过一番努力,我得到了一个辅助特征:

trait EnvAwareDriver {
  def driver(): WebDriver = {
    if (System.getenv("CI") == "true") {
      WebDriverFactory(FIREFOX)
    } else {
      val caps = DesiredCapabilities.firefox()
      caps.setCapability("platform", "Linux")
      caps.setCapability("version", "32 .0")
      caps.setCapability("tunnelIdentifier", System.getenv("TRAVIS_JOB_NUMBER"))
      new RemoteWebDriver(new URL("…"), caps)
    }
  }
}

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

最后,通过提取trait

中的逻辑,我想出了一个更清晰的解决方案
trait EnvAwareDriver {
  def localDrivers: Seq[String => WebDriver]
  def remoteDrivers: Seq[String => WebDriver]

  def drivers: Seq[String => WebDriver] = if (System.getenv("CI") != "true") localDrivers else remoteDrivers
}