如何让Firefox在Mac OSX上使用Selenium WebDriver

时间:2012-03-28 12:28:05

标签: java macos firefox selenium webdriver

我正在尝试为WebDriver配置代理设置,所以我使用了以下代码....

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("network.proxy.type", 1);
profile.setPreference("network.proxy.http","207.229.122.162");
profile.setPreference("network.proxy.http_port", 3128); 
WebDriver driver = new FirefoxDriver(profile);
selenium = new WebDriverBackedSelenium(driver, "http://www.example.com/");

在对文件执行运行后,我得到了像...一样的异常

  

org.openqa.selenium.WebDriverException:在PATH中找不到firefox二进制文件。

     

确保已安装firefox。操作系统似乎是:MAC

     

系统信息:os.name:'Mac OS X',os.arch:'x86_64',os.version:'10 .6.8',

     

java.version:'1.6.0_29'

     

驱动程序信息:driver.version:FirefoxDriver

任何人都可以帮助我了解如何以及在何处提供firefoxprofile()

的路径

8 个答案:

答案 0 :(得分:18)

我相信你有几个选择:

在PATH系统变量中指定文件夹(Firefox二进制文件所在的文件夹) - here's how

或致电

WebDriver driver = new FirefoxDriver(new FirefoxBinary(new File("path/to/your/firefox.exe")), profile);

答案 1 :(得分:11)

对于Mac,如果您通过brew cask安装FireFox,只需将其符号链接到/ Applications。

cd /Applications
ln -s /Users/<your-username>/Applications/Firefox.app Firefox.app

这对我有用。

答案 2 :(得分:3)

在我的情况下,我需要将Firefox.app从/ Users / username / Applications移动到/ Applications

答案 3 :(得分:3)

对于Mac:

  1. 使用selenium jar 2.44.0(确保selenium服务器jar为2.44.0)
  2. firefox版本33(https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/33.0/mac/en-US/
  3. 在Mac的终端中,使用此命令为firefox创建配置文件:&#34; /Applications/Firefox.app/Contents/MacOS/firefox-bin" -p

    1. 在创建配置文件时,您会看到配置文件的路径为.default, - 请注意这一点,以便在配置文件路径的代码中输入相同内容。

    2. 代码如下所示:

  4. String profilePath =&#34; /Users/admin/Library/ApplicationSupport/Firefox/Profiles/4duhjf19.default" ;;

                    System.out.println("profilePath: "+profilePath);
                    File checkProfile = new File(profilePath);
                    File[] allFolder = checkProfile.listFiles();
                    for (int i = 0; i < allFolder.length; i++) {
    
                        if (allFolder[i].getName().endsWith(".default")) {
                            profilePath = profilePath + allFolder[i].getName();
                            break;
                        }
                    }
    FirefoxProfile firefoxprofile1 = new FirefoxProfile(new File(
                            profilePath));
                    System.out.println("profile path : " + firefoxprofile1);
                    driver = new FirefoxDriver(firefoxprofile1);
                    System.out.println("webdriver FF");
                    driver.manage().deleteAllCookies();
    

答案 4 :(得分:1)

之前我遇到过这个问题,很容易解决它。

Windows 上,修改环境变量,将firefox path添加到PATH变量。

Mac 上应该类似,只需在个人资料文件中导出 PATH=/my/firefox/path/bin:$PATH

答案 5 :(得分:1)

我不确定在Mac上,但在Windows上我解决了这个问题。

确保使用32位版本的nunit。 Firefox是一个32位浏览器。

我有64位Windows操作系统,但Firefox是32位浏览器。我试图使用64位版本的nunit,它给出了“无法在PATH中使用firefox二进制文件”错误。我通过使用32位版本的nunit解决了这个问题。基本上,nunit文件夹中有两个exe文件,nunit.exe和nunit-x86.exe。如果你得到这个“无法在PATH中使用firefox二进制文件”错误,很可能你需要使用32位版本的nunit - Nunit-x86.exe。

答案 6 :(得分:1)

在Mac OS X上,我在尝试运行脚本时收到类似“无法找到Firefox二进制文件(os = macosx)”的WebDriver错误。

我发现我的问题是将我的Firefox应用程序重命名为“Firefox 22”。 WebDriver的东西只是“Firefox”。

答案 7 :(得分:0)

由于selenium web驱动程序无法找到Firefox的.exe文件而获得此类问题。请检查C:\ Program Files(x86)\ Mozilla Firefox中是否有exe文件,并且不要忘记设置具有java jdk路径的环境变量。 来源: - http://www.tech4crack.com/solved-cannot-find-firefox-binary-in-path/