簡潔な答え
あなたのFirefoxの実行可能ファイルは、システムパスまたはデフォルトの場所にないようです。これを修正するには複数の方法があります
1.コードでFirefoxのバイナリパスを設定する
webdriver.firefox.bin プロパティを設定する必要があります。Java では、次のコードを使用してこれを行うことができます。
FirefoxProfile profile = new FirefoxProfile();
WebDriver driver = new FirefoxDriver(new FirefoxBinary(new File("path/to/your/firefox.exe")), profile);
2. Firefox がインストールされている場所を見つけて、パス変数でそのパスを更新します。
export PATH=/my/firefox/path/bin:$PATH
3.Seleniumサーバー起動時のシステムプロパティにwebdriver.firefox.binを指定します。
java -jar seleniumserver.jar -D webdriver.firefox.bin = "/path/to/firefox-bin
上記のいずれかを実行すると、問題は解決するはずです。
それほど短い答えではありません-なぜ失敗するのですか?
FirefoxDriver javadoc ごと -
org.openqa.selenium.firefox.FirefoxDriver
Firefox を駆動する {#link WebDriver} インターフェイスの実装。これは、必要に応じて自動的にインストールされる Firefox 拡張機能を介して機能します。重要なシステム変数は次のとおりです。
webdriver.firefox.bin - 使用する Firefox バイナリ (通常、PATH の「firefox」)。
webdriver.firefox.profile - 使用するプロファイルの名前 (通常は「WebDriver」)。
ここで、webdriver.firefox.binは、firefox.exe (Windows の場合) または firefox (Mac の場合) のパスを決定します。
通常、マシンに Firefox をインストールすると、firefox ファイルへのパスがパス変数に追加されます。これにより、ユーザーはどこからでも firefox を呼び出すことができます。
Webdriver は、この Firefox 実行可能ファイルをパス変数で検索し、次にデフォルトの場所で検索します。Selenium コードから、このデフォルト パスは次のように定義されます。
case MAC:
if (!binaryName.endsWith(".app"))
binaryName += ".app";
binaryName += "/Contents/MacOS/firefox-bin";
break;
Firefox ファイルが/Contents/MacOS/firefox-binで利用できない場合、webdriver はその場所を認識できません。したがって、失敗。