【问题标题】:Selenium Automation save file to directorySelenium Automation 将文件保存到目录
【发布时间】:2021-04-10 14:37:36
【问题描述】:

我正在编写一个从浏览器保存文件的 selenium 脚本。该脚本工作正常,但我在自动化方面遇到了困难。如果用户登录,脚本将按预期运行。如果屏幕被锁定或用户已注销,则找不到目录。

将文件保存到目录时,脚本似乎中断了。

我创建了一个使用 PyAutoGui 将文件保存到指定目录的函数:

pyautogui.hotkey('ctrl','s')
time.sleep(2)
FILE_NAME = '' + directory + filename
pyautogui.typewrite(FILE_NAME)
time.sleep(1)
pyautogui.press('enter')
time.sleep(1)
pyautogui.keyDown('left')
pyautogui.keyDown('enter')

函数运行并控制台显示任务已完成,但文件实际上并未保存到目录中。

我假设这是由于在计算机处于睡眠模式或注销时阻止修改目录路径。

只是为了澄清脚本按预期运行,仅在尝试在没有用户在场的情况下自动执行作业时遇到此问题。

不确定是否有其他访问目录的方法。任何建议将不胜感激!

【问题讨论】:

  • 用 pyautogui 来做这件事有点矫枉过正。如果您正在寻找下载文件 - 该文件将有一个链接,您可以使用 selenium 获得该链接,但您可以使用 curl/requests 下载该文件。

标签: python selenium automation pyautogui


【解决方案1】:

我建议你在驱动初始化中添加额外的参数

  1. 设置默认下载目录
  2. 关闭提示选择文件位置

如果是Chrome,你应该配置以下参数

      "download.default_directory": "DIR",
      "download.prompt_for_download": false,
      "download.directory_upgrade": true

您可以在此处找到更多详细信息: https://chromedriver.chromium.org/capabilities(部分设置下载目录)

使用这种方法,您唯一需要做的就是点击下载链接。

【讨论】:

    猜你喜欢
    • 2022-01-21
    • 1970-01-01
    • 2020-04-21
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    • 2022-01-16
    • 2011-07-19
    • 1970-01-01
    相关资源
    最近更新 更多