1

我是 Mac 新手,在尝试在任何浏览器上运行脚本时遇到问题,更不用说 IE 或 Chrome。这是我到目前为止所做的:

  1. 安装了最新版本的 Eclipse、Selenium 独立服务器和 Selenium IDE
  2. 为 Eclipse 安装了 TestNG 框架
  3. 已安装 Selenium Web 驱动程序和 JAVA 库

到目前为止,我所能做的就是运行我在 FF12 上创建的测试脚本。

我使用 Selenium IDE 在 FF12 上创建了一些测试脚本,然后使用 TestNG 将它们导出到 Eclipse,当我尝试运行它们时,我收到此错误消息“请将包含 ''firefox-bin' 或 'firefox'' 的目录添加到您的PATH环境"

我感觉我错过了很多正确配置 Eclipse 和 Selenium 以在其他浏览器(最好是 IE9 和最新版本的 Chrome)上运行脚本的步骤。如果这还不够糟糕,我使用的是 MacBook Pro(我一生都是 PC 人)。请保持温和,我能得到的任何建议将不胜感激。谢谢

4

1 回答 1

2

简短的回答

似乎您的 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 将不知道在哪里可以找到它。因此失败。

于 2012-06-06T22:11:48.277 回答