selenium+pyqt5自动化工具总结

1. 代码结构

pycharm打开的文件下,再写一个子文件,文件导入的时候把子文件名带上

这样就可以在 外层使用命令 pyinstaller -F -w selenium_tool\main.py (-w是不要黑窗口)

2. 项目思路

  1. 路径下放一个resource目录,目录下又有 ui 文件夹, 和images文件夹。

  2. qtdesigner设计中,设计ui文件。转成py文件放到 resources路径下

  3. 内层的selenium_tool 路径下,放各自界面的逻辑文件,如caselist_window.py

  4. 主文件main.py

3. 窗口show的逻辑

1 。用例列表的窗口 和 步骤列表窗口的show,写在main

这样做的可以有的好处就是,caselistwinow 和stepslistwindow 两个文件都是独立的

(比如:要升级一个窗口,单独去升级代码就行了,不影响 两一个窗口)

  1. 【新增编辑步骤窗口的show逻辑】,是直接写到【步骤列表窗口】的逻辑代码中

4. caselist_winodow中,不引入 步骤窗口,如何打开步骤窗口

  1. 用例窗口中,创建信号和发射信号

2 .外部文件中,用例窗口实例, 监听信号, 并做对应的槽函数

5. add或编辑步骤窗口的关闭(同上)

【新增或编辑步骤窗口】中自定义信号 和发射信号

6. add或编辑步骤窗口 的 提醒外部刷新 的信号

自定义信号和发射信号

7. 用例列表窗口中,防止按钮被多次点击

如下图,两个地方,需要防止多次点击

如第一个地方,原来的代码是(点击【编辑步骤】,打开另一个窗口):

python 复制代码
elif action =="编辑步骤":
      current_test_case_id = self.tableWidget.item(row, 0).text()
      current_test_case_name = self.tableWidget.item(row, 1).text()
      # 发射信号,外部去监听,一收到就要代开另一个窗口
      self.show_stepswindow_signal.emit(current_test_case_id, current_test_case_name)

如果多次,点击 【编辑步骤】按钮, 就会打开多次窗口,存在bug

解决方法:

点击之后,就把按钮禁用,然后到try中去实现逻辑,finally,300毫秒后,再把按钮启用

8. 步骤列表窗口中,打开【add或编辑步骤窗口时】防止多次点击(基本同上)。

本来打开 【add或编辑步骤窗口时】是 edit_step 和 add_step()方法,解决方法就是再封装到另一个方法中,传如button, 一开始就禁用button

9. from functools import partial 的使用。

它是一个类似lambda的东西,用法如下:

在步骤列表stepslist_window中,有遍历数据,然后给每行数据加了按钮。

遍历中,有这行代码:

python 复制代码
edit_button.clicked.connect(lambda : self.safe_edit_step(edit_button,row_index))

如果是这样写的,

edit_button,始终是最后一个。按钮置灰的也是最后一个才置灰,打开的也是最后一个步骤的内容

如果改成这样写 ,就可以把每次遍历到的 edit_button 用起来,传到方法中。

python 复制代码
 edit_button.clicked.connect(partial(self.safe_edit_step, edit_button,row_index))

原因分析

10. 项目中多线程的使用

每次,start(),去完成执行方法时,他就是多线程。 代码中并且向外部发射信号,执行一步,就可以打印日志。

工具如下:仅学习使用:

通过网盘分享的文件:main.exe

链接: https://pan.baidu.com/s/1v-q9sqNCv-a371Qg4LqtYQ?pwd=9yqd 提取码: 9yqd

相关推荐
赛博云推-Twitter热门霸屏工具2 小时前
推特自动化营销软件推荐:赛博云推实现Twitter热门霸屏与精准获客
运维·自动化·媒体·twitter
cver1233 小时前
羽毛球检测数据集介绍-8853张图片 智能体育分析 自动化比赛直播 运动训练辅助系统 体育场馆智能管理 虚拟现实训练 青少年体育教育
目标跟踪·自动化·vr
研究点啥好呢4 小时前
3月10日GitHub热门项目推荐|自动化的浪潮
运维·人工智能·ai·自动化·github
Zwj-c5 小时前
【测试报告】个人博客系统测试报告(功能测试、自动化测试、Bug描述)
功能测试·selenium·测试用例·bug
AIwenIPgeolocation5 小时前
基于昇腾算力+鲲鹏服务器实现国产化环境的OpenClaw高效应用,解锁AI自动化新体验
服务器·人工智能·自动化
AI专业测评6 小时前
2026年AIGC“零成本”全自动化写作管线评测:主流免费AI长文本工具工程解析
人工智能·自动化·aigc
智能工业品检测-奇妙智能6 小时前
机器人在化工园区巡检的场景有哪些
人工智能·机器人·自动化·机器视觉·山东奇妙智能·圣泉集团
梦想的旅途27 小时前
企微机器人开发 API:实现私域流量自动化管理的标准化方案
机器人·自动化·企业微信
北京耐用通信7 小时前
耐达讯自动化CC-Link IE转Profinet网关:破解协议壁垒,赋能电机智控升级
人工智能·科技·物联网·网络协议·自动化·信息与通信
技术小甜甜7 小时前
[AI工程化] 一个适合封闭内网环境的AI实战配置建议:Qwen + Dify + 本地AI自动化
人工智能·ai·自动化·创业创新·工作流