Несколько экземпляров Firefox с Marionette/Selenium в Python

Я хотел бы открыть несколько экземпляров Firefox с помощью Selenium в Python и запустить их параллельно. После обновления до Firefox 47.0 кажется, что теперь мы должны использовать Marionette WebDriver для Firefox+Selenium. До использования Marionette я мог легко создавать новые экземпляры Firefox из Python/Selenium, просто вызывая webdriver.Firefox() несколько раз. Однако после переключения на Marionette работает только первый экземпляр. Если второй экземпляр открыт, я получаю следующую ошибку:

WebDriverException: Сообщение: не удалось декодировать ответ от марионетки

После выдачи ошибки этот экземпляр умирает, а последний вызываемый экземпляр продолжает жить. Оглядываясь вокруг, кажется, что проблема заключается в портах, которые использует Marionette, где новые экземпляры продолжают пытаться подключиться к тому же порту, который использовал исходный. Я видел, что есть способ изменить порты, используемые через prefs.js и создание отдельных профилей. Однако мне было интересно, есть ли способ сделать это полностью из Python (аналогично этому пример Java).

Любая помощь будет оценена по достоинству!


person user6472032    schedule 16.06.2016    source источник
comment
Я бы предложил зарегистрировать ошибку в проектах selenium/marionette, чтобы они могли исправить эту проблему, поскольку это явно не предназначено.   -  person Mobrockers    schedule 16.06.2016
comment
Спасибо! Я зарегистрировал ошибку с ними.   -  person user6472032    schedule 25.06.2016
comment
какие-либо обновления по этому вопросу?   -  person qwertylpc    schedule 05.07.2016
comment
В итоге я перешел на Firefox 46.0, но, согласно этому, проблема была решена . Хотя я еще не пробовал.   -  person user6472032    schedule 08.07.2016


Ответы (1)