Как заставить Firefox работать с Selenium WebDriver на Mac OSX
Я пытаюсь настроить параметры прокси для 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: не удается найти двоичный файл firefox в PATH.
Убедитесь, что установлен Firefox. OS выглядит следующим образом: 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()
Ответы
Ответ 1
Я считаю, что у вас есть несколько вариантов:
Либо укажите папку (в которой ваш бинарный код Firefox) в вашей системной переменной PATH - здесь, как.
Или вызовите
WebDriver driver = new FirefoxDriver(new FirefoxBinary(new File("path/to/your/firefox.exe")), profile);
Ответ 2
Для Mac, если вы установили FireFox через brew cask, просто символически привяжите его к /Applications.
cd /Applications
ln -s /Users/<your-username>/Applications/Firefox.app Firefox.app
Это сработало для меня.
Ответ 3
В моем случае мне нужно переместить Firefox.app из /Users/username/Applications в/Applications
Ответ 4
Для Mac:
String profilePath = "/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();
Ответ 5
Я встречал эту проблему раньше, ее очень легко исправить.
в Windows, измените переменные среды, добавьте переменную firefox path
в PATH
.
он должен быть похож на Mac, просто экспортировать PATH=/my/firefox/path/bin:$PATH
в файл вашего профиля.
Ответ 6
Я не уверен на Mac, но в Windows я решил эту проблему.
Убедитесь, что вы используете 32-разрядную версию nunit. Firefox - это 32-битный браузер.
У меня 64-битная ОС Windows, но Firefox - это 32-битный браузер. Я пытался использовать 64-разрядную версию nunit, которая давала ошибку "Can not fine firefox binary in PATH". Я решил это, используя 32-разрядную версию nunit. В основном, есть файлы exe в папке nunit, nunit.exe и nunit-x86.exe. Если вы получаете ошибку "Can not fine firefox binary in PATH", скорее всего вам нужно использовать 32-разрядную версию nunit - Nunit-x86.exe.
Ответ 7
В Mac OS X я получал ошибку WebDriver, например "Не удалось найти двоичный файл Firefox (os = macosx)" при попытке запустить script.
Я обнаружил, что моя проблема заключалась в том, что переименованное приложение Firefox в "Firefox 22". Предполагается, что материал WebDriver будет просто "Firefox".
Ответ 8
Этот вид проблемы, полученный из-за веб-драйвера selenium, не находит файлы .exe в Firefox. Проверьте, есть ли в C:\Program Files (x86)\Mozilla Firefox файл exe в этом месте и не забудьте установить переменную среды, имеющую путь java jdk.
Источник: - http://www.tech4crack.com/solved-cannot-find-firefox-binary-in-path/