Невозможно изменить каталог после загрузки файла через selenium

#python #selenium

#python #selenium

Вопрос:

Я работаю над этим проектом, который включает в себя загрузку daily .csv. Я успешно написал код для загрузки файла .csv через selenium. однако у меня возникают проблемы с изменением каталога при запуске всего кода.

Рассматриваемый код выглядит следующим образом:

 
download_purchases = driver.find_element_by_xpath('/html/body/div[1]/div/div/div/div[3]/div/div[2]')
download_purchases.click()

fp = os.path.expanduser('~') '/Desktop/Export_Purchasing/CSV/'
os.chdir(fp)
files = [f for f in os.listdir(fp)]

 

Когда я запускаю весь синтаксис до этого момента, понимание списка файлов выдает пустой список. Однако, когда я повторно запускаю его (после попытки запустить весь код с самого начала), понимание списка может обнаружить download .csv.

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

 driver.quit()
 

но это не решило проблему.

Ответ №1:

Похоже, что файлы, вероятно, не загружены к моменту попадания в вашу последнюю строку : files = [f for f in os.listdir(fp)] . Чтобы проверить это, вы можете добавить в спящий режим, например:

 import time

download_purchases = driver.find_element_by_xpath('/html/body/div[1]/div/div/div/div[3]/div/div[2]')
download_purchases.click()

fp = os.path.expanduser('~') '/Desktop/Export_Purchasing/CSV/'
os.chdir(fp)


print("Printed immediately.")
time.sleep(10)
files = [f for f in os.listdir(fp)]
 

Если это работает, то вы знаете, что это просто проблема времени, и вы можете использовать более сложное решение для продолжения после завершения загрузки.

Комментарии:

1. @arundeepchohan Да, вы могли бы, но это не указывало бы на то, что это проблема времени.