#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 Да, вы могли бы, но это не указывало бы на то, что это проблема времени.