現在自身が動かしている環境の設定に関して公開しておきます。
あくまでも一例であり、最適解とは思っていませんが、一応動いてはいますので何かの足しになれば幸いです。
[環境情報]
(ホスト)
CentOS7
(クライアント)
Windows7
FireFox ESR60
geckodriver v0.20.1
[build.gradle]
(中略) dependencies { //Groovy testCompile 'org.codehaus.groovy:groovy-all:2.4.13' //Spock testCompile group: 'junit', name:'junit', version: '4.+' testCompile "org.spckframework:spock-core:1.1-groovy-2.4' testCompile 'net.bytebuddy:byte-buddy:1.6.5' testCompile 'org.objensis:objensis:2.5.1' //Geb def gebVer = "2.1" testCompile "org.gebish:geb-core:${gebVer}" testCompile "org.gebish:geb-spock:${gebVer}" //Selenium-driver def seleniumVer = "3.12.0" testCompile "org.seleniumhq.selenium:selenium-java:${seleniumVer}" testCompile "org.seleniumhq.selenium:selenium-support:${seleniumVer}" testCompile "org.seleniumhq.selenium:selenium-chrome-driver:${seleniumVer}" testCompile "org.seleniumhq.selenium:selenium-edge-driver:${seleniumVer}" testCompile "org.seleniumhq.selenium:selenium-firefox-driver:${seleniumVer}" testCompile "org.seleniumhq.selenium:selenium-ie-driver:${seleniumVer}" (以下、略)
[GebConfig.groovy]
import org.openqa.selenium.firefox.FirefoxDriver import org.openqa.selenium.firefox.FirefoxOptions (中略) System.setProperty("brt", "FireFox") System.setProperty("webdriver.gecko.driver", "geckodriver.exe") FirefoxOptions options = new FirefoxOptions() options.addPreference("browser.download.folderList", 2) //ダウンロードに指定された最後のフォルダ options.addPreference("browser.download.dir", /${fileDownloadDir}/) //ダウンロードフォルダの指定 options.addPreference("browser.download.manager.showhenStarting", false) //ダウンロードダイアログを非表示 options.addPreference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream, image/png, application/vnd.ms-excel, test/plain, application/vnd.ms-excel.sheet.macroEnabled.12")//指定したMIMEタイプは強制保存 driver = new FirefoxDriver(options) (以下略)
[FireFox ESR38→FireFox ESR60に乗り換える際にはまったこと]
・FireFoxは今までドライバが内蔵されていたので、クライアント側に配置する必要がなかった。そのため、各開発者にはFirefoxをインストールするだけで良かったが、ESR45位からはドライバも配置してもらう必要があった。そこをハンドリングし忘れていたため、テスト環境では動くが各開発者の環境では動かないという事象を発生させてしまった。
・import文の宣言を忘れていたので、実行してもFireFoxOptionsが有効でないという怒られ方をしていたがなかなか気づけなかった。(長い間スタックトレースの詳細版に記述されていた unable to resolve class FirefoxOptions というエラーに気づかずに、Jenkinsのサマリー側に表示されていた MultipleCompilationErrorsException のエラーについて追ってしまい、無駄に時間をかけてしまった)
・FireFoxProfileも併存して書いてしまっていた(上記がimport文問題が最後まで気づけず、なかなか気づけなかった)
[参考URL]
github.com
selenium/FirefoxOptions.java at trunk · SeleniumHQ/selenium · GitHub
selenium/CapabilityType.java at trunk · SeleniumHQ/selenium · GitHub