简短的回答
似乎您的 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 文件的路径会添加到path变量中。这将允许用户从任何地方调用 Firefox。
Webdriver 将在路径变量中查找此 firefox 可执行文件,然后在默认位置查找。从 selenium 代码中,此默认路径定义如下:
case MAC:
if (!binaryName.endsWith(".app"))
binaryName += ".app";
binaryName += "/Contents/MacOS/firefox-bin";
break;
如果您的 firefox 文件在/Contents/MacOS/firefox-bin中不可用,那么 webdriver 将不知道在哪里可以找到它。因此失败。