Как открыть Firefox Developer Edition через Selenium

Следуя некоторым учебникам по Selenium, я установил geckodriver, Чтобы запустить простой код на python для запуска Selenium, я должен указать этот путь в командной строке:

export PATH=$PATH:/home/xx/Downloads/geckodriver-v0.24.0-linux64

Но я хочу, чтобы Selenium открыл имеющуюся у меня версию для разработчиков, поскольку она содержит расширение, которое я хочу протестировать: когда я разделяю путь к исполняемому файлу для версии для разработчиков:

export PATH=$PATH:/home/xx/Documents/ff_extension/firefox/

Затем запустите мой скрипт на python:

from selenium import webdriver
browser = webdriver.Firefox()

Селен все еще открывает geckodriver браузер.

Q: Как я могу поручить Selenium запускать Firefox Dev? Издание в пути я указываю?

3 ответа

Браузер Firefox Developer Edition не устанавливается в обычном месте, где установлен обычный браузер Firefox. В моем Windows 8 окне Firefox Developer Edition браузер был установлен в каталоге:

C:\Program Files\Firefox Developer Edition

Теперь при вызове браузера Firefox Developer Edition необходимо передать абсолютный путь двоичного файла Firefox Developer Edition через аргумент firefox_binary следующее:

  • Блок кода:

    from selenium import webdriver
    from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
    
    firefox_dev_binary = FirefoxBinary(r'C:\Program Files\Firefox Developer Edition\firefox.exe')
    driver = webdriver.Firefox(firefox_binary=firefox_dev_binary, executable_path=r'C:\Utility\BrowserDrivers\geckodriver.exe')
    driver.get('https://www.google.co.in')
    print("Page Title is : %s" %driver.title)
    # driver.quit()
    
  • Консольный вывод:

    Page Title is : Google
    
  • Снимок браузера:


Этот случай использования

Поскольку вы работаете в Linux, вам необходимо указать абсолютный путь:

  • Бинарный Firefox Developer Edition
  • Бинарный GeckoDriver

Таким образом, ваш эффективный блок кода будет:

from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

firefox_dev_binary = FirefoxBinary('/path/to/Firefox Developer Edition/firefox')
driver = webdriver.Firefox(firefox_binary=firefox_dev_binary, executable_path='/home/xx/Downloads/geckodriver-v0.24.0-linux64/geckodriver')
driver.get('https://www.google.co.in')
print("Page Title is : %s" %driver.title)
# driver.quit()

Ты можешь использовать FirefoxBinary как описано здесь: Установка пути к бинарному файрфоксу в Windows с помощью селенового веб-драйвера

Чтобы установить собственный путь к Firefox, вам нужно использовать FirefoxBinary:

from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

binary = FirefoxBinary('F:\FirefoxPortable\Firefox.exe')
driver = webdriver.Firefox(firefox_binary=binary)

Альтернатива:

      from selenium.webdriver.firefox.options import Options as FirefoxOptions

s = FirefoxOptions()
driver = webdriver.Firefox(options=s)