Установить параметры Chrome в существующем веб-драйвере

Сценарий: существует требование загрузки файлов из веб-иерархии на локальный диск в той же иерархии.

Пример веб-иерархии:

Parent 1:  
  Child 1:  
    *File 1  
  Child 2:  
    *File 2  

При загрузке файла 1 он должен храниться по пути 1 - "C:\....\Downloads\Parent 1\Child 1\"

При загрузке файла 2 он должен храниться в пути 2 - "C:\....\Downloads\Parent 1\Child 2\"

Проблема:

Когда я сохраняю "C:....\Downloads\Parent 1\Child 1\" путь загрузки в chrome webdriver при первоначальной инициализации web-драйвера в setUp() и загружаю "File 1", он загружается в ожидаемую папку. Но когда я задаю следующий путь загрузки "C:....\Downloads\Parent 1\Child 2\" в chrome webdriver для загрузки в него файла 2, он открывает другой браузер chrome, потому что я использую другой веб-драйвер для установки пути 2.

Требуемое решение:

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

Текущий код:

def setUp(self):  
browser = webdriver.Chrome(chromedriver_path, option_with_path_1_set)

def test_downloadFiles(self):  
\*code to download first file\*  
driver = webdriver.Chrome(chromedriver_path, option_with_path_2_set)  
\*code to download second file\*  

def tearDown(self):  
browser.quit()

Пожалуйста, дайте мне знать, если вам требуется дополнительная информация.

Заранее спасибо!

1 ответ

При настройке экземпляра ChromeDriver с ChromeOptions для запуска нового сеанса браузера Chrome конфигурация ChromeDriver остается неизменной в течение всего срока службы ChromeDriver и остается недоступной для редактирования.

Даже если вы сможете извлечь атрибуты ChromeDriver и ChromeSession, например, идентификатор сеанса, файлы cookie и другие атрибуты сеанса, из инициированного сеанса просмотра, вы все равно не сможете изменить эти атрибуты ChromeDriver.

Более чистым способом было бы позвонить driver.quit() в tearDown(){} способ корректно закрыть и уничтожить экземпляры ChromeDriver и Chrome Browser, а затем дополнить новый набор экземпляров ChromeDriver и Chrome Browser новым набором конфигураций.

Здесь вы можете найти соответствующую дискуссию о том, как я могу повторно подключиться к браузеру, открытому веб-драйвером с селеном?


Обновить

Как @KirilS. упомянутый в качестве альтернативы вы можете переместить загруженный файл в другое место через ваш скрипт.

Другие вопросы по тегам