2014-03-29 5 views
3

Чтобы явно определить каталог загрузки до определения селена WebDriver мы используем следующий код:Python Селен WebDriver - Динамическое изменение каталога загрузки

chromeOptions = webdriver.ChromeOptions() 
prefs = {"download.default_directory" : "C:/data/cline"} 
chromeOptions.add_experimental_option("prefs",prefs) 
chromePath = "path to chromedriver" 

driver = selenium.webdriver.chrome.webdriver.WebDriver(executable_path=chromePath, port=0, chrome_options=chromeOptions, service_args=None, desired_capabilities=None, service_log_path=None) 

Я хочу, чтобы загрузить несколько файлов, каждый из которых в другой (новый). Можно ли изменить каталог загрузки после определения драйвера?

+0

возможно дубликат [Как изменить папку загрузки по умолчанию в то время как WebDriver работает?] (Http://stackoverflow.com/questions/23896625/how-to-change-default-download- folder-while-webdriver-is-running) –

ответ

-1
driver.set_preference("download.default_directory", "path/") 

Попробуйте этот вариант.

+0

Пробовал это и получил эту ошибку: AttributeError: объект «WebDriver» не имеет атрибута «set_preference» – user3294195

+0

Извините, не оглянулся назад ... – Wolkodav

+0

Тогда вы не можете. – Wolkodav

0

Мне не удалось выяснить, как это сделать, и использовали работу. Вместо того, чтобы менять каталог загрузки webDriver на лету, приведенное ниже решение просто перемещает загружаемый файл.

ExperimentsWithCode Gave the Answer Here. Below is part of his solution

def move_to_download_folder(downloadPath, newFileName, fileExtension): 
    got_file = False 
    ## Grab current file name. 
    while got_file = False: 
     try: 
      currentFile = glob.glob(DOWNLOAD_PATH+"*"+fileExtension) 
      got_file = True 

     except: 
      print "File has not finished downloading" 
      time.sleep(20) 

    ## Create new file name 
    fileDestination = downloadPath+newFileName+fileExtension 

    os.rename(currentFile, fileDestination) 

    return 
Смежные вопросы