当前位置: 首页 > news >正文

Web UI自动化时,通过autoIT的解决window控件

Selenium进行WEB的UI自动化时经常会遇到windows弹框,比如上传、下载框时的提示框,这种弹框selenium自身是无法处理的,这时我们可以借助AutoIT这个工具。

图片

介 绍 

AutoIt 是用以编写并生成具有 BASIC 语言风格的脚本程序的免费软件,它被设计用来在Windows GUI(用户界面)中进行自动操作。通过它可以组合使用模拟键击、鼠标移动和窗口/控件操作等来实现自动化任务。

https://www.autoitscript.com/site/autoit/downloads/

下载&安装

这里内容分两步

第一步:python环境中autoIT模块的安装,主要是为了在python代码中通过autoIT模块提供的函数等,实现各种操作的模拟;

第二步:PC机器上安装autoIT,主要为了方便做元素的识别

A:python环境的安装

直接在命令行窗口通过pip安装:pip install PyAutoIt

B:pc安装

直接去官网下载windows的安装包或解压包即可。

图片

使用示例

以下载为例,在firefox浏览器上下载时默认会弹出这样的提示框,如果我们不点击其保存按钮,则不会开始下载,也无法进行其他操作。那么如何点击保存呢?

图片

Python中点击操作交给autoIT完成,代码写成如下:

import autoit
autoit.control_focus("请输入要保存的文件名…", "[Class:Button; instance:1]")
autoit.control_click("请输入要保存的文件名…", "[Class:Button; instance:1]")

左右拉动查看完整代码

代码运行时,可以实现点击保存按钮,开始下载的效果。

代码拆解

语句:autoit.control_click("请输入要保存的文件名…", "[Class:Button; instance:1]")中,

A. autoit是我们安装的第三方模块名称,

B. control_click对应点击操作,操作函数有很多,需要时根据提示选择即可。

C. 函数参数列表,函数的第一个参数代表操作哪个窗口,通常为目标窗口的title,

第二个参数代表操作哪个控件,书写方式比较多样,:如”Edit1”或"[Class:Button; instance:1]"或”[Class:Button]”等,可以综合多个属性进行元素定位。

这里涉及到一个问题,我怎么知道要操作的控件class是什么instance是什么?这种时候window里安装的autoIT就派上用场了:

打开安装目录下的:Au3Info.exe程序,通过它可以查看控件各属性:

▲ 使用方法:拖动查询工具,到指定控件,然后松开鼠标,即可在左侧看到当前窗口及控件信息:

图片

在控件选项卡中,可以查看到详细的控件信:

图片

类别名或高级模式的内容复制出来就可以做控件识别了。是不是也很简单了呢?

更多说明请参考官网文档:

https://www.autoitscript.com/autoit3/docs/functions.htm

以上就是今天的所有内容,每个工作日小编都会更新一个有关测试的小知识,希望大家多多关注我们,一起来学习喔!

http://www.dtcms.com/a/511434.html

相关文章:

  • 电商网站建设建议网站前端交互功能案例分析
  • Qt——窗口
  • [人工智能-大模型-20]:对比 Copilot 与国产替代方案(如通义灵码、百度Comate)
  • c语言和网站建设的关系平台网站开发可行性分析
  • gcc编译的过程及每个过程的作用
  • ROS2[Humble] -- URDF Tutorial- 02-multipleshapes
  • C#实现二维码和条形码生成与打印
  • C#WPF如何跳转页面
  • 【高并发服务器】八、Poller描述符监控类实现
  • 用vs2013网站开发四川最好的网络优化公司
  • 如何开发一个 IDEA 插件通过 Ollama 调用大模型为方法生成仙侠风格的注释
  • 【论文精读】Latent-Shift:基于时间偏移模块的高效文本生成视频技术
  • unity基础学习笔记<上>
  • C# WPF Dragablz使用记录 TabControl选项卡可拖拽为单独界面或停靠
  • 机器人场景落地步入技术验证阶段,微美全息加快创新势能探索AI多元路径变革
  • YOLOv4 核心内容笔记
  • 网站开发工程师待遇家庭网站建设
  • 医疗门户网站模板wordpress3.8
  • iOS的多线程下数据安全和内存泄漏以及工具使用监测内存泄漏
  • 『CMake』关于使用CMake构建项目时的现代/传统指令
  • 请被人做网站怎么做倒计时网站
  • App开发框架调研对比
  • Ubuntu下载以及安装详解以及应用安装
  • 亚马逊云代理:AWS的EC2, S3, RDS,Lambda具体简介
  • 2640. QYQ在艾泽拉斯
  • 基于 React + TypeScript + Fabric.js 构建一个封面生成器网站
  • 营销型电子商务网站品牌建设与推广思路
  • 更新网站 seo公司的管理方式与管理方法
  • BZV49-C22,115稳压二极管 NXP安世半导体 工业电源芯片 芯片解析
  • 职场发展—如何避雷垃圾公司