Python: как автоматизировать содержимое флеш-плеера «Разрешить» в Firefox?

Мне нужно разрешить флэш-контент автоматически в Python. Я пытался использовать Selenium в Python для этого, но не смог. Проблема в том, что браузеры перестали поддерживать настройки, всегда разрешающие флэш-контент. Более того, кнопка «Разрешить» недоступна, например, через Selenium, потому что она не является частью веб-сайта или настройки в Firefox. Кто-нибудь знает о потенциальном обходном пути?

Вот изображение сообщения Firefox, к которому мне нужно каким-то образом получить доступ: https://i.stack.imgur.com/VYuRV.png


person Kasper Nicholas    schedule 02.12.2019    source источник
comment
Вы проверили, есть ли возможность всегда разрешать это?   -  person Exp    schedule 02.12.2019
comment
К сожалению, в 2017 году эту опцию убрали.   -  person Kasper Nicholas    schedule 02.12.2019


Ответы (2)


"...Кнопка Allow недоступна, например, через Selenium, потому что она не является частью веб-сайта или настройки в Firefox. Кто-нибудь знает о потенциальном обходном пути?"

Я не знаю вашу ОС, но если бы это была моя проблема...

  • Попробуйте найти модуль «нажатие клавиши», чтобы отправить нажатие клавиши A в Firefox (например, ярлык Allow).

  • Попробуйте отправить щелчок мыши по координатам кнопки Allow.

Хороший вариант — pyautogui. Как только Flash включен таким модулем (кликером или прижимом), вы можете использовать Selenium для всего, что вам нужно сделать во включенном Flash.

person VC.One    schedule 04.12.2019

Чтобы разрешить содержимое flash автоматически с помощью Selenium через Python вам нужно использовать экземпляр метода FirefoxProfile() и set_preference() для настройки:

  • От dom.ipc.plugins.enabled.libflashplayer.so до true
  • От plugin.state.flash до 2

Блок кода:

from selenium import webdriver

profile = webdriver.FirefoxProfile()
profile.set_preference("dom.ipc.plugins.enabled.libflashplayer.so","true")
profile.set_preference("plugin.state.flash", 2)
driver = webdriver.Firefox(firefox_profile=profile, executable_path=r'C:\Utility\BrowserDrivers\geckodriver.exe')
driver.get('https://www.google.co.in')
print("Page Title is : %s" %driver.title)
driver.quit()
person DebanjanB    schedule 02.12.2019
comment
Это решение больше не действует для Firefox и других браузеров, поскольку эти настройки больше нельзя установить для флэш-контента. - person Kasper Nicholas; 02.12.2019