如何设置Eclipse/Selenium在Mac上的其他浏览器上运行脚本?

如何设置Eclipse/Selenium在Mac上的其他浏览器上运行脚本?,eclipse,selenium,webdriver,Eclipse,Selenium,Webdriver,我是Mac电脑的新手,在任何浏览器上运行脚本都有问题,更不用说IE或Chrome了。以下是我到目前为止所做的: 安装了最新版本的Eclipse、Selenium独立服务器和Selenium IDE 已安装用于Eclipse的TestNG框架 已安装Selenium web驱动程序和JAVA库 到目前为止,我所能做的就是运行我在FF12上创建的测试脚本 我已经使用Selenium IDE在FF12上创建了一些测试脚本,然后使用TestNG将它们导出到Eclipse,当我尝试运行它们时,会收到以下错

我是Mac电脑的新手,在任何浏览器上运行脚本都有问题,更不用说IE或Chrome了。以下是我到目前为止所做的:

  • 安装了最新版本的Eclipse、Selenium独立服务器和Selenium IDE
  • 已安装用于Eclipse的TestNG框架
  • 已安装Selenium web驱动程序和JAVA库
  • 到目前为止,我所能做的就是运行我在FF12上创建的测试脚本

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

    我感觉我错过了很多正确配置Eclipse和Selenium以在其他浏览器(理想情况下是IE9和最新版本的Chrome)上运行脚本的步骤。如果这还不够糟糕的话,我用的是MacBookPro(我一辈子都是电脑爱好者)。请温柔一点,我能得到的任何建议都将不胜感激。谢谢

    简短回答 您的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的安装位置,并在path变量中更新该路径

    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

    驱动程序的{#link WebDriver}接口的实现 火狐。这是通过安装firefox扩展来实现的 如有必要,自动进行。重要的系统变量包括:

    webdriver.firefox.bin-要使用的firefox二进制文件(通常是 路径上的“firefox”。
    webdriver.firefox.profile-文件的名称 要使用的配置文件(通常为“WebDriver”)

    这里,webdriver.firefox.bin确定firefox.exe(在windows中)或firefox(在mac中)的路径

    通常,在计算机中安装firefox时,firefox文件的路径会添加到path变量中。这将允许用户从任何地方调用firefox

    Webdriver将在path变量中查找此firefox可执行文件,然后在默认位置查找。根据selenium代码,此默认路径定义如下:

    case MAC:
            if (!binaryName.endsWith(".app"))
              binaryName += ".app";
            binaryName += "/Contents/MacOS/firefox-bin";
            break;
    

    如果您的firefox文件在/Contents/MacOS/firefox bin中不可用,那么webdriver将不知道在哪里可以找到它。因此失败。

    您的路径中有firefox吗?换句话说,如果你打开一个终端并输入firefox,它是在打开浏览器吗?不,当我在终端中输入firfox时,它会说“command not found”,这是一个非常完整且写得很好的答案!