Selenium для Python ~ Получение каталога загрузки из объекта драйвера - PullRequest
0 голосов
/ 15 апреля 2019

Я пытаюсь установить пользовательский каталог загрузки для Chrome Web Driver в Selenium для Python, а затем получить его. Я установил каталог загрузки следующим образом, и это уже работает:

chrome_options = webdriver.ChromeOptions()
prefs = {"download.default_directory": r"D:\menu\spam"}
chrome_options.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(chrome_options=chrome_options)

Однако гораздо позже мне нужно получить это местоположение для загрузки, и я хотел бы сделать это динамически, не пропуская его через весь промежуточный код. Есть ли способ сделать это? Я бы предположил, что пользовательское местоположение загрузки хранится где-то в driver объекте. Однако я пока не смог его найти.

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

driver.capabilities["goog:chromeOptions"]["prefs"]["download.default_directory"]

Однако в какой-то момент инициализации драйвера значения в driver.capabilities["goog:chromeOptions"] перезаписываются, и единственный оставшийся ключ - "debuggerAddress".

Кто-нибудь знает, почему это происходит? И может ли кто-нибудь из способов извлечь пользовательский каталог загрузки из объекта драйвера, когда мне это нужно?

И альтернативой этому может быть установка пользовательского каталога загрузки непосредственно перед тем, как он мне понадобится, но, как я уже сказал, веб-драйвер инициализируется гораздо раньше, и, насколько я понял, нет способа изменить параметры во время выполнения, теперь там?

...