自动化测试selenium IDE录制无法获取Windows上传文件窗口操作解决方法

1、编写上传文件类方法

import win32con
import win32gui


# 选择文件路径格式【选择多个文件时空格隔开,并且每个文件路径都使用双引号】
# filePath = ("\"C:\\Users\\sjzhakj\\Desktop\\文档\\GEP-R\\北京各区边界\\北京市各区边界.shp\"" + " " +
#                     "\"C:\\Users\\sjzhakj\\Desktop\\文档\\GEP-R\\北京各区边界\\北京市各区边界.cpg\"" + " " +
#                     "\"C:\\Users\\sjzhakj\\Desktop\\文档\\GEP-R\\北京各区边界\\北京市各区边界.dbf\"" + " " +
#                     "\"C:\\Users\\sjzhakj\\Desktop\\文档\\GEP-R\\北京各区边界\\北京市各区边界.prj\"" + " " +
#                     "\"C:\\Users\\sjzhakj\\Desktop\\文档\\GEP-R\\北京各区边界\\北京市各区边界.shx\"")
# 【使用此方法上传文件时,需在setting设置里安装pypiwin32,安装后重启Pycharm】
def upload_file(file_path):
    """
    上传文件时选择文件过程【前提是选择文件窗口已打开才可调用】
    :param file_path:
    :return:
    """
    # 一级顶层窗口
    dialog = win32gui.FindWindow("#32770", "打开")
    # 二级窗口
    comboxex32 = win32gui.FindWindowEx(dialog, 0, "ComboBoxEx32", None)
    # 三级窗口
    combox = win32gui.FindWindowEx(comboxex32, 0, "ComboBox", None)
    # 四级窗口 -- 文件路径输入区域
    edit = win32gui.FindWindowEx(combox, 0, "Edit", None)
    # 二级窗口 -- 打开按钮
    button = win32gui.FindWindowEx(dialog, 0, "Button", "打开(&0)")
    # 输入文件路径
    win32gui.SendMessage(edit, win32con.WM_SETTEXT, None, file_path)
    # 点击打开按钮
    win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button)

注:安装pywin32的库,命令行安装 python -m pip install pypiwin32,或setting设置里安装pypiwin32,安装后重启Pycharm

2、方法调用

上传多个文件:

# 点击上传按钮弹出选择文件窗
        self.driver.find_element(By.CSS_SELECTOR, ".el-button--mini > span:nth-child(1)").click()
        time.sleep(5)
        filePath = ("\"C:\\Users\\sjzhakj\\Desktop\\文档\\GEP-R\\北京各区边界\\北京市各区边界.shp\"" + " " +
                    "\"C:\\Users\\sjzhakj\\Desktop\\文档\\GEP-R\\北京各区边界\\北京市各区边界.cpg\"" + " " +
                    "\"C:\\Users\\sjzhakj\\Desktop\\文档\\GEP-R\\北京各区边界\\北京市各区边界.dbf\"" + " " +
                    "\"C:\\Users\\sjzhakj\\Desktop\\文档\\GEP-R\\北京各区边界\\北京市各区边界.prj\"" + " " +
                    "\"C:\\Users\\sjzhakj\\Desktop\\文档\\GEP-R\\北京各区边界\\北京市各区边界.shx\"")
        upload_file.upload_file(filePath)

上传单个文件:

# 点击上传按钮弹出选择文件窗
# 9 | click | css=.el-button--mini:nth-child(1) > span |
        self.driver.find_element(By.CSS_SELECTOR, ".el-button--mini:nth-child(1) > span").click()
        # 10 | type | css=.el-card__body > input | C:\fakepath\bj_lulc_16.tif
        time.sleep(5)
        filePath = "\"C:\\Users\\sjzhakj\\Desktop\\文档\\GEP-R\\bj_lulc_16.tif\""
        upload_file.upload_file(filePath)
  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值