Установить параметры 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. упомянутый в качестве альтернативы вы можете переместить загруженный файл в другое место через ваш скрипт.