Установить параметры Chrome в существующем веб-драйвере - PullRequest
0 голосов
/ 27 октября 2018

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

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

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 \ Child1 \ "Путь загрузки в chrome webdriver при первоначальной инициализации web-драйвера в setUp () и загрузка" Файл 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 Ответ

0 голосов
/ 27 октября 2018

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

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

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

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


Обновление

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

...