• AutoIT+Selenium的使用


    AutoIt v3是一种免费的类似BASIC的脚本语言,用于自动化Windows GUI和通用脚本。它使用模拟击键,鼠标移动和窗口/控制操作的组合,以便以其他语言(例如VBScript和SendKeys)不可能或不可靠的方式自动执行任务。

    安装AutoIT

    访问这个网址:https://www.autoitscript.com/site/autoit/downloads/
    下载并安装两个文件:SciTE4AutoIt3.exe,autoit-v3-setup.exe
    在这里插入图片描述

    介绍

    AutoIt Window Info:元素识别器,是一个类似selenium IDE的工具,元素识别器找到窗口GUI或非HTML弹出窗口的元素,并提供元素的属性,比如 title, class, instance。
    SciTE Script Editor:编辑器,用于编写AutoIT脚本。

    编写AutoIT脚本

    获取属性

    1. 打开需要上传文件的窗口,通过AutoIt Window Info,拖动Finder Tool获取元素属性:
      在这里插入图片描述
      获取的属性如下,我们会根据这些属性编写脚本。:
      Alt text

    方法介绍

    这里介绍Web自动化脚本编写过程中可能用到的方法,其余方法查看官方文档

    等待窗口就绪:WinWaitActive(“title”[,“text”[,timeout]])

    参数 解释
    title 与元素识别器的Title对应
    text 该窗体下的文本,一般""即可
    timeout 超时时间,类似于selenium中的WebDriverWait的timeout

    返回窗体的位置信息:WinGetPos("title"[,"text"])

    解释
    $ aArray [0] X位置
    $ aArray [1] Y位置
    $ aArray [2 宽度
    $ aArray [3] 高度

    模拟鼠标点击:MouseClick ( "button" [, x, y [, clicks = 1 [, speed = 10]]] )

    参数 解释
    button "left"为鼠标左键,"right"为鼠标右键
    x,y 要在坐标为x,y的位置上进行点击
    clicks 点击次数

    睡眠,单位毫秒,5000代表5秒:Sleep ( milliseconds)

    将输入焦点设置为窗口上的给定控件:ControlFocus ( "title", "text", controlID )

    参数 解释
    title 与元素识别器的Title对应
    text 该窗体下的文本,一般""即可
    controllID {Class} + {Instance}。如图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tWzlXRAk-1618997380515)(./1553915298102.png)],则该参数值为:Edit1

    发送鼠标单击命令到给定控件:ControlClick(" title "," text ",controlID )
    参数同ControlFocus

    设置控件的文本:ControlSetText(" title "," text ",controlID ," new text" )

    参数 解释
    title 与元素识别器的Title对应
    text 该窗体下的文本,一般""即可
    controllID {Class} + {Instance}。如图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aDZ0fpUf-1618997380518)(./1553915298102.png)],则该参数值为:Edit1
    new text 要设置到控件中的新文本

    应用

    ;等待Title为phpwind - Powered by phpwind - Google Chrome的窗口
    Local $win = WinWaitActive("phpwind - Powered by phpwind - Google Chrome","",10)
    
    ;在本机分辨率宽度为1616,高度为876的情况下,对坐标点(630,507)进行鼠标左击
    $pos =WinGetPos($win)
    $high=$pos[3]  ;表示窗口的的实际高度
    $weight=$pos[2]  ;表示窗口的实际宽度
    $click_x=630*$weight/1616  ;630表示我在当前电脑分辨率宽度为1616下的X坐标值
    $click_y=507*$high/876  ;507表示我再当前电脑分辨率高度为876下的Y坐标值
    MouseClick("left",$click_x,$click_y,1)
    
    ;等待Class为#32770的窗体
    WinWaitActive("[CLASS:#32770]","",10)
    ;把焦点设置在controllID为Edit1的控件中
    ControlFocus("打开","","Edit1")
    ;设置该控件的文本为C:Usersqvzn0Pictures	est.jpeg
    ControlSetText("打开","","Edit1","C:Usersqvzn0Pictures	est.jpeg")
    ;点击controllID为Button1的控件
    ControlClick("打开","","Button1")
    

    把脚本编译成exe文件

    编写完上述脚本后,保存到任意路径,在点击菜单栏Tools -> Complile,出现:在这里插入图片描述
    一般默认即可,点击Comlile Script后会在同一目录下生成exe文件。

    调用exe文件

    在自动化代码打开上传文件的窗体后,调用exe文件即可:

    • Java的调用方法:
    Runtime.getRuntime().exec("C:/Users/qvzn0/Desktop/test3333.exe");	
    
    • Python的调用方法:
    os.system("C:/Users/qvzn0/Desktop/test3333.exe")
    

    参考

  • 相关阅读:
    02_离线计算系统_第2天(HDFS详解)
    01_离线计算系统_第1天(HADOOP快速入门)
    01_离线计算系统_第1天(HADOOP快速入门)
    第4天 java高级特性增强 ---有用 第一遍
    038_字符串的转义
    037_标准化日期代码
    036_js中的字符串比较大小
    035_jQaury中的each()循环
    034_json对象字符串长什么样子?
    033_SpringMVC返回String,view,Object的原理
  • 原文地址:https://www.cnblogs.com/testopsfeng/p/14686121.html
Copyright © 2020-2023  润新知