Selenium + Python + Chrome: одновременно добавить_экспериментальную_опцию и установить желаемые_возможности

Я пытаюсь изменить настройки драйвера Chrome, чтобы он позволял мне выполнять следующие действия:

  1. Это не дает мне всплывающее окно (как обсуждалось здесь ).
  2. Это позволяет мне изменить каталог загрузки и настройки (как обсуждалось здесь).

Хотя оба решения феноменально работают по отдельности, мои попытки объединить их потерпели катастрофический провал. Ниже приведены два решения для изолированных деталей. Оцените любую помощь здесь.

Код 1:

### This version save pdf automatically but has automation popup.

from selenium import webdriver
import time


timestr = time.strftime("%Y%m")

options = webdriver.ChromeOptions()

prefs = {
"download.default_directory": r"C:\temp\\"+timestr,
"download.prompt_for_download": False,
"download.directory_upgrade": True,
"plugins.always_open_pdf_externally": True
}

options.add_experimental_option('prefs', prefs)
driver = webdriver.Chrome(executable_path="C://temp//chromedriver.exe",options=options)
driver.get("https://www.tutorialspoint.com/selenium/selenium_tutorial.pdf")

Код 2:

### This version has no automation popup but doesn't save pdf automatically.

from selenium import webdriver
import time


timestr = time.strftime("%Y%m")

capabilities = {
    'browserName': 'chrome',
    'chromeOptions':  {
        'useAutomationExtension': False,
        'forceDevToolsScreenshot': True,
        'args': ['--start-maximized', '--disable-infobars']
    }
}    

driver = webdriver.Chrome(executable_path="C://temp//chromedriver.exe",desired_capabilities=capabilities)
driver.get("https://www.tutorialspoint.com/selenium/selenium_tutorial.pdf")

person RUN    schedule 22.01.2019    source источник
comment
Добро пожаловать в Stack Overflow :) Я вижу, у вас уже есть ответ, но для дальнейшего использования было бы полезно объяснить, что вы пытались (фактический код был бы лучше) и как именно это не удалось в самом вопросе.   -  person Jeff B    schedule 22.01.2019


Ответы (1)


Вы можете преобразовать параметры в желаемые возможности и передать их в параметр desired_capabilities при создании драйвера:

capabilities.update(options.to_capabilities())

Надеюсь, это поможет вам!

person Ratmir Asanov    schedule 22.01.2019
comment
Спасибо за ваш ответ! Это сработало. Я преобразовал «возможности» в моем коде 2, используя «параметры» в моем «коде 1» с помощью вашего однострочного кода. Расширенные возможности работают отлично! Также поделитесь обновленными возможностями ниже: - person RUN; 22.01.2019