IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> Python+Selenium实现非input标签属性的文件上传 -> 正文阅读

[开发测试]Python+Selenium实现非input标签属性的文件上传

1、安装相关模块

pyperclip: 实现脚本字段的复制、粘贴

安装方式

pip install pyperclip

在这里插入图片描述

2、导入相关模块

# python自带的插件,win32api是用来模拟键盘操作
import win32api
# python自带的插件,win32con是用来控制键盘
import win32con
# 脚本字段的复制、粘贴
import pyperclip

3、封装代码

涉及到模拟按键等操作可参考链接:https://blog.csdn.net/polyhedronx/article/details/81988948.

#(封装在公共类中)
class BasePage:
	...
    # 非input标签上传文件
    def isnot_input_uploadfile(self, eleLoc, filePath, doc=''):
        """
        使用python的win32api,win32con模拟按键输入,实现文件上传操作
        :param eleLoc: 页面中的上传文件按钮
        :param filePath: 要上传的文件地址(绝对路径)
        :param doc: 备注信息
        :return:
        """
        # 复制文件路径到剪切板(需要上传文件的绝对路径)
        pyperclip.copy(filePath)
        # 点击上传文件按钮
        self.click(eleLoc)
        time.sleep(3)
        # 将剪切的内容粘贴(Ctrl+V)
        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)
        time.sleep(2)

4、调用函数

    # 注册登记新增数据
    def add_datas_zcdj_page(self, zcdjh, zcdjrq, zcdjjg, gldwyj, zgdwsh, zgbmsh, ljpath):
        time.sleep(1)
        self.switch_iframe_by_id(IMPL.zcdj_add_iframe[0], doc="xxxx新增页面iframe")
        self.input_text(IMPL.zcdjh, zcdjh, doc="输入xxxx")
        self.input_text(IMPL.zcdjrq, zcdjrq, doc="输入xxxx")
        win32api.keybd_event(13, 0, 0, 0)
        win32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0)
        time.sleep(0.5)
        self.input_text(IMPL.zcdjjg, zcdjjg, doc="输入xxxx")
        self.input_text(IMPL.gldwyj, gldwyj, doc="输入xxxx")
        self.input_text(IMPL.zgdwsh, zgdwsh, doc="输入xxxx")
        self.input_text(IMPL.zgbmsh, zgbmsh, doc="输入xxxx")
        self.isnot_input_uploadfile(IMPL.fjsc, ljpath, doc="上传文件")
        time.sleep(1)
        self.click(IMPL.save_btn, doc="点击保存按钮")
        self.driver.switch_to_default_content()

    def test_f_zcdj_page_add_save1(self):
        """
        注册登记新增界面,编辑相关信息后,点击保存
        数据新增成功
        :return:
        """
        IMP(self.driver).add_datas_zcdj_page(
            GD.zcdj_add_datas1['ZCDJH'],
            GD.zcdj_add_datas1['DJRQ'],
            GD.zcdj_add_datas1['DJJG'],
            GD.zcdj_add_datas1['GLDWYJ'],
            GD.zcdj_add_datas1['ZGDWYJ'],
            GD.zcdj_add_datas1['ZGBMYJ'],
            GD.zcdj_add_datas1['FJ']
        )
        time.sleep(1class GlobalDatas:
	# 注册登记新增
    zcdj_add_datas1 = {
        "ZCDJH": "xxxx", "DJRQ": "2021-09-17", "DJJG": "xxxx", "GLDWYJ": "同意", "ZGDWYJ": "同意",
        "ZGBMYJ": "同意", "FJ": r"E:\Users\PycharmProjects\Auto_Testing_01\Infos\注册登记信息.docx"
    }

在这里插入图片描述

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章           查看所有文章
加:2021-09-19 08:16:52  更:2021-09-19 08:17:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 0:18:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码