Как запустить несколько экземпляров портативного Firefox с помощью Selenium FirefoxDriver
Я использую селен FirefoxDriver в своих тестах и запускаю эти тесты параллельно - в каждом потоке работает отдельный экземпляр Firefox. Все работает нормально, когда я использую обычный FireFox, но если я хочу запустить эти тесты с переносным Firefox, первый запуск запускается успешно, но второй, третий и т. Д... завершается с ошибкой:
Ваш профиль Firefox не может быть загружен. Может отсутствовать или быть недоступным.
Вот как я запускаю Firefox из кода:
var profile = new FirefoxProfileManager().GetProfile("default");
var firefoxBinary = new FirefoxBinary("Path to FireFoxPortable.exe");
_driver = new FirefoxDriver(firefoxBinary, profile);
Есть идеи, что я делаю не так? Благодарю.
1 ответ
Драйвер Firefox пытается запустить Firefox, используя профиль, который уже используется. Это невозможно, поскольку профиль можно использовать только один раз. Причина, по которой он работает при запуске Firefox несколько раз вручную, заключается в том, что Firefox повторно использует существующий запущенный процесс Firefox с уже загруженным профилем.
На основании этой информации решение вашей проблемы: 1) запустите драйвер Firefox для запуска Firefox с уникальными / новыми профилями, 2) измените код так, чтобы требовался только один экземпляр драйвера Firefox.
Чтобы запустить Firefox с несколькими экземплярами, используйте: firefox.exe -P "Мой профиль" -no-remote. Не делайте так, чтобы параметр -no-remote не использовался с первым запущенным профилем, который в вашем случае будет профилем "по умолчанию". Подробнее об этом здесь: http://kb.mozillazine.org/Opening_a_new_instance_of_Firefox_with_another_profile.
Чтобы запустить Firefox Portable с другими профилями, если предыдущие команды не применимы для Firefox Portable, следуйте инструкциям здесь: http://portableapps.com/support/firefox_portable.