Как исправить Selenium Webdriver, не открывая новую вкладку в Firefox 68.0 и выше? - PullRequest
1 голос
/ 10 июля 2019

После обновления до Firefox 68 мой скрипт на python с селеном сломался, я не смог открыть новую вкладку с помощью кода, который работал до этого.

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

my_profile = webdriver.FirefoxProfile()

my_profile.set_preference("browser.tabs.remote.autostart", False)
my_profile.set_preference("browser.tabs.remote.autostart.1", False)
my_profile.set_preference("browser.tabs.remote.autostart.2", False)
browser = webdriver.Firefox(firefox_profile=my_profile)

browser.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')

1 Ответ

0 голосов
/ 10 июля 2019

Оказывается, что Mozilla внесла изменения в будущие версии Firefox, начиная с Firefox 68,

поэтому изменив значение browser.tabs.remote.autostart на false, просто не отключите e10s (Multi-Process)

и в результате не будет открыта новая вкладка в селене.

Подробнее об этом можно прочитать здесь:

https://techdows.com/2019/05/mozilla-firefox-68-doesnt-allow-turning-off-e10s.html

https://www.ghacks.net/2016/07/22/multi-process-firefox/


Решение состоит в том, чтобы удалить предыдущий код и использовать вместо этого:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import os

os.environ['MOZ_FORCE_DISABLE_E10S'] = '1'
browser = webdriver.Firefox()

browser.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...