zoukankan      html  css  js  c++  java
  • python自动化上传文件

    零基础转行测试交流群631450326

    在UI测试中,经常会涉及到文件上传,文件上传一般包含的文件是图片,视频以及如csv,excel,记事本等文件,文件上传的实现大体分为两种,一种是input标签,一种非input标签。
    非input如下展示
    def upLoad_File(self, filePath):
    """
    使用 python 的 win32api,win32con 模拟按键输入,实现文件上传操作。
    :param webEle: 页面中的上传文件按钮,是已经获取到的对象
    :param filePath: 要上传的文件地址,绝对路径。如:D:\timg (1).jpg
    """
    pyperclip.copy(filePath) # 复制文件路径到剪切板

    time.sleep(3) # 等待程序加载 时间 看你电脑的速度 单位(秒)
    # 发送 ctrl(17) + V(86)按钮
    win32api.keybd_event(17, 0, 0, 0)
    win32api.keybd_event(86, 0, 0, 0)
    win32api.keybd_event(86, 0, win32con.KEYEVENTF_KEYUP, 0) # 松开按键
    win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)
    time.sleep(1)
    win32api.keybd_event(13, 0, 0, 0) # (回车)
    win32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0) # 松开按键
    win32api.keybd_event(13, 0, 0, 0) # (回车)
    win32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0)
    time.sleep(2)
    webEle.click()  # 点击上传图片按钮
    调用上传文件函数upLoad_File(r'D:\timg (1).jpg')
    
    

    input标签上传方式:send_keys()自动化上传

    简单的input标签上传方式要使用自动化上传不难,先定位到上传按钮,然后send_keys把路径作为值给传进去就好了。

    例如我们找到那个控制上传的input标签,例如<input type="file" name="upload">这样的,然后对这个按钮进行定位再传路径:

    driver.find_element_by_name("upload").send_keys('D:\filename.txt')

    这种方式很简单,只要有input标签一般都可以通过这种方式简单的一条语句就可以实现。

    
    
    
    
    


  • 相关阅读:
    A New Approach to Line Simplification Based on Image Processing: A Case Study of Water Area Boundaries
    3D模型
    数码相机控制点的自动定位检校
    道路网匹配
    多线程操作数据拷贝要加线程锁
    编程琐事
    C++ 指定路径文件夹存在与否查询及文件夹创建
    C++ 网络编程之正确使用UDP广播及多播
    C++ 获得系统时间
    C++ 数据写入文件与读回
  • 原文地址:https://www.cnblogs.com/LtTest/p/14686309.html
Copyright © 2011-2022 走看看