python - 通过 selenium 下载文件后无法更改目录
问题描述
我正在从事这个项目,该项目涉及下载每日 .csv。我已经成功编写了通过 selenium 下载 .csv 文件的代码。但是,我在运行整个代码时无法更改目录。
有问题的代码如下:
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)]
到目前为止,当我运行整个语法时,文件列表理解会生成一个空列表。但是,当我重新运行它时(在尝试从头开始运行整个代码之后),列表理解能够检测到下载的 .csv。
我怎样才能使它在第一次通过时检测到文件?我尝试通过以下方式退出驱动程序:
driver.quit()
但这并没有解决问题。
解决方案
看起来文件可能在到达最后一行时尚未下载: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)]
如果这有效,那么您知道这只是一个时间问题,您可以采用更复杂的解决方案在下载完成后继续。
推荐阅读
- javascript - 自定义 ActionBar formy nativescript-vue 应用程序
- fortran - 具有特定矩阵的 lapack 词干分割错误
- c# - 加载 SQLite.Interop.dll 文件
- c# - Google Dialogflow V2 webhook 不起作用 - InvalidType 和 Null 异常
- django - 如何修改 django admin url 模式以使链接具有唯一的 url?
- javascript - 哪个是更好的延迟加载模块或预加载模块策略?
- mql4 - 如何避免从 NormalizeDouble 和 OrderSend 挂单 (SELLLIMIT, BUYLIMIT) 得到错误 -1 无效止损
- haskell - Haskell:为什么用等号失败?
- spring-boot - 为什么 JAXB 编组操作在 Constructor.newInstance 上有 60% 的锁定时间?
- pine-script - 在 "x" 天后平仓 (pine editor - tradingview)