Создайте новую папку и сделайте ее загрузкой по умолчанию в селене - PullRequest
0 голосов
/ 04 августа 2020

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

from selenium import webdriver
from datetime import datetime
import os

today = datetime.now()

current_dir = os.mkdir("/Users/Desktop/" + today.strftime('%Y-%m-%d_%H-%M-%S'))
browser = webdriver.Chrome('/Users/Desktop/chromedriver')
chromeOptions = webdriver.ChromeOptions()
prefs = {"download.default_directory" : current_dir }
chromeOptions.add_experimental_option("prefs",prefs)

Я запускаю указанный выше сценарий, и он создает новую папку, но по умолчанию расположение загрузки не меняется, поскольку файл по-прежнему загружается по адресу chrome: // Downloads. Есть ли способ изменить новую созданную папку в качестве каталога загрузки по умолчанию

Ответы [ 3 ]

2 голосов
/ 04 августа 2020

Проблема здесь в методе os.mkdir. Метод os.mkdir() в Python используется для создания каталога с именем path с указанным режимом numeri c. Этот метод не возвращает никакого значения.

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

Если вы посмотрите на изображение выше, вы увидите, что current_dir имеет тип «Нет». Итак, папка создана на рабочем столе, но путь к ней не сохраняется.

1 голос
/ 04 августа 2020

Вам нужно создать имя папки и саму папку в двух отдельных строках кода:

current_dir_name = "/Users/Desktop/" + today.strftime('%Y-%m-%d_%H-%M-%S')
os.mkdir(current_dir_name)

, а затем путь current_dir_name в

chromeOptions = webdriver.ChromeOptions()
prefs = {"download.default_directory" : current_dir_name}
chromeOptions.add_experimental_option("prefs", prefs)
0 голосов
/ 04 августа 2020

Чтобы создать новый каталог с текущим временем, вы можете использовать модуль datetime следующим образом:

  • Блок кода:

    from datetime import datetime
    import os
    
    
    new_dir = "C:/Users/user-name/Desktop/" + datetime.now().strftime('%Y-%m-%d_%H-%M-%S')
    print(new_dir)
    if not os.path.exists(new_dir):
        os.makedirs(new_dir) 
    
  • Вывод в консоль:

    C:\Users\user-name\Desktop\Debanjan\PyPrograms>new_directory.py
    C:/Users/user-name/Desktop/2020-08-04_18-01-46
    
    C:\Users\user-name\Desktop\Debanjan\PyPrograms>new_directory.py
    C:/Users/user-name/Desktop/2020-08-04_18-02-01
    
    C:\Users\user-name\Desktop\Debanjan\PyPrograms>new_directory.py
    C:/Users/user-name/Desktop/2020-08-04_18-02-05
    
  • Снимок вновь созданных каталогов:

Selenium следующим образом:

from selenium import webdriver
from datetime import datetime
import os

new_dir = "C:/Users/user-name/Desktop/" + datetime.now().strftime('%Y-%m-%d_%H-%M-%S')
print(new_dir)
if not os.path.exists(new_dir):
    os.makedirs(new_dir) 

options = webdriver.ChromeOptions() 
options.add_experimental_option("prefs", {"download.default_directory" : new_dir})
driver = webdriver.Chrome(options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')

Ссылка

Вы можете найти пару соответствующих подробных обсуждений в:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...