博客
关于我
Python web自动化测试 —— 文件上传!
阅读量:804 次
发布时间:2023-03-06

本文共 1633 字,大约阅读时间需要 5 分钟。

文件上传三种常用方法

在软件测试或自动化测试中,文件上传是常见的操作。以下是三种常用的文件上传方法,适用于不同场景和操作系统。

一、通过元素定位实现文件上传

如果元素是 input 标签,文件上传的实现方式与文本框输入类似,主要使用 send_keys 方法。

步骤:

  • 找到需要上传文件的元素,若为 input 标签。
  • 使用 send_keys 输入文件路径。注意:在 Windows 系统中,文件路径需要用反斜杠 \,因此在输入时需要加上 re 模块的支持,并使用 r"c:\路径\文件名.扩展名" 格式。
  • 可以添加 time.sleep(3) 以避免元素定位失败。
  • 示例代码:

    from selenium import webdriverdriver = webdriver.Chrome()driver.get('http://www.example.com/file-upload')file_input = driver.find_element_by_id('file-upload-input')file_input.send_keys(r"c:\test.txt")time.sleep(3)

    二、使用 pywinauto 实现文件上传(仅在 Windows 系统中使用)

    如果元素不是 input 标签,且涉及的是文件夹中的文件,传统的 drag_and_drop 方法可能无法使用,因为文件上传通常依赖于 Windows 的剪贴操作。

    步骤:

  • 安装 pywinauto 包:pip install pywinauto
  • 导入必要的模块:from pywinauto.keyboard import send_keys
  • 打开文件选择窗口,输入文件路径并点击“打开”按钮。
  • 示例代码:

    import pywinautofrom pywinauto.keyboard import send_keysapp = pywinauto.Desktop()dlg = app["打开"]dlg["Toolbar3"].click()  # 点击工具栏send_keys("D:\data")      # 输入文件路径send_keys("{VK_RETURN}")  # 按回车键dlg["文件名(&N):Edit"].type_keys("接口测试文件.pdf")dlg["打开(&O)"].click()time.sleep(4)

    三、使用 pyautogui 实现跨平台文件上传

    如果需要在非 Windows 系统(如 Mac 或 Linux)上实现文件上传,可以使用 pyautogui 库。

    步骤:

  • 安装必要的库:pip install pillow==6.2.2 和 pip install pyautogui
  • 使用 pyautogui.write 输入文件路径,注意路径中如果包含中文字符,可能需要使用 pyperclip 处理。
  • 使用热键或按键事件模拟输入文件路径并完成上传。
  • 示例代码:

    import pyautoguiimport timefrom pyperclip import copy# 输入文件路径到剪切板copy(r"/path/to/文件名.文件扩展名")time.sleep(2)pyautogui.hotkey("ctrl", "v")  # 粘贴文件路径time.sleep(2)pyautogui.press("enter", presses=2)  # 输入两次回车以确保文件上传完成

    注意事项

    • 在使用 pyautogui 时,文件路径中如果包含中文字符,可能会导致错误。建议使用 pyperclip 处理这些路径。
    • 对于复杂的文件上传场景,建议结合 Pywinauto 和 pyautogui 使用,以提高成功率。

    希望这三种方法能为您的文件上传任务提供帮助!如果需要更多详细的代码示例或遇到问题,请随时联系我。

    转载地址:http://kgafk.baihongyu.com/

    你可能感兴趣的文章
    python函数编写_[零基础学python]传说中的函数编写条规
    查看>>
    Python+selenium —— UI自动化之鼠标操作
    查看>>
    python函数注释,参数后面加冒号:,函数后面的箭头→是什么?
    查看>>
    Python+Selenium+Threading进行兼容性测试
    查看>>
    Python+selenium+unittest的GUI自动化框架实现
    查看>>
    python函数拟合不规则曲线_Python计算&绘图——曲线拟合问题(转)
    查看>>
    python函数定义的基本格式_零基础学python-2.19 定义函数、调用函数与默认参数
    查看>>
    Python+Selenium之数据驱动测试的实现
    查看>>
    python函数定义与使用+返回值简解
    查看>>
    Python+Selenium登录
    查看>>
    Python日期时间模块
    查看>>
    Python函数合集:足足68个内置函数请收好!
    查看>>
    Python+Selenium自动化测试项目实战
    查看>>
    Python+Selenium自动化测试项目实战【建议收藏】
    查看>>
    Python+Selenium自动化测试:Page Object模式
    查看>>
    python+selenium进行cnblog的自动化登录测试
    查看>>
    Python函数只返回第一个值而不是数据框
    查看>>
    Python+SQL实战:京东用户行为数据分析案例解析(上)
    查看>>
    Python+SQL实战:京东用户行为数据分析案例解析(下)
    查看>>
    PYTHON+Twisted+sqlanydb=ABORT()
    查看>>