Как проверить расширение Safari с Selenium в Python?

Мы создали расширения для Chrome, Firefox и Safari, и мы хотим протестировать наши расширения с помощью Selenium. Я уже создал тесты для Chrome и Firefox с нашим расширением, и теперь я хочу проверить расширение Safari. Я нашел этот ответ о Safari, но я не узнал, как это сделать в Python, я проверил и Selenium 2.45.0 (который мы используем) не определены SafariOptions, и я не узнал, как добавить расширение для тестов Safari. Мы используем удаленное тестирование с Safari, и я проверил тест с Safari без нашего расширения, которое прошло, но я не узнал, как я создаю тесты с нашим расширением Safari в Python. Вот соответствующие функции:

def get_chrome_options(self, file_name):
    chrome_options = ChromeOptions()
    chrome_options.add_extension(extension=file_name)
    return chrome_options

def get_firefox_profile(self, file_name):
    firefox_profile = webdriver.FirefoxProfile()
    firefox_profile.add_extension(extension=file_name)
    return firefox_profile

def start_selenium_webdriver(self, caps, chrome_options=None, firefox_profile=None):
    print("Starting test \"{}\" with {} {}, resolution {}.".format(caps['name'], caps['browser'], caps['browser_version'], caps['resolution']))
    if (self.browser == "chrome"):
        self.driver = webdriver.Chrome(chrome_options=chrome_options)
    elif (self.browser == "firefox"):
        self.driver = webdriver.Firefox(firefox_profile=firefox_profile)
    else:
        self.driver = webdriver.Remote(
            command_executor='http://username:[email protected]:80/wd/hub',
            desired_capabilities=caps
        )
    self.driver.implicitly_wait(time_to_wait=5)
    self.driver.set_window_size(1920, 1080)
    size = self.driver.get_window_size()
    print("Window size: width = {}px, height = {}px.".format(size["width"], size["height"]))

Буду признателен, если вы предоставите ответы как для локального, так и для удаленного тестирования. Мы хотим протестировать наши расширения с помощью Safari 7 и 8.

Ответ 1

Это невозможно. Автоматическая установка расширений была удалена из 2.45 из-за обновлений безопасности браузера Safari.

Ответ 2

Нет драйвера для расширения Safari, но я думаю, вы всегда можете выполнить команду из python "open".

Это приведет к диалогу установки сафари, на который вы можете ответить, используя API-интерфейсы доступности на Mac.

Удачи. Я надеюсь, что это помогает.