写在前面:此文为转载文章,侵删。原文链接:How to use AutoIT with Selenium,由于本人英语较差,请只做参考。

Selenium是一种开源工具,它的设计目的是自动化测试不同浏览器上基于web的应用程序,它被设计成在不同的浏览器上自动化基于web的应用程序,但在应用程序中处理窗口GUI和非HTML弹出窗口。由于这些基于窗口的活动不是由Selenium处理的,所以需要AutoIT。

AutoIt v3也是免费软件。它使用鼠标移动、击键和窗口控制操作来自动完成一项任务,这是由selenium webdriver不可能完成的任务。

接下来,我们将学习如何在selenium webdriver中使用autoIT上传文件。为了达到这个目的,我们需要三个工具。

  • Selenium Webdriver
  • AutoIT编辑器和元素标识符
  • 您想要自动化的窗口

在本教程中,您将学习:

如何下载和安装AutoIT

通过元素查找器查找元素并在AutoIt编辑器上编辑脚本

在selenium中通过AutoIt上传文件

如何下载和安装AutoIT

  • 访问这个网址:https://www.autoitscript.com/site/autoit/downloads/
  • 在AutoIt和AutoIt Editor处下拉菜单
  • 点击“AutoIT”下载选项。                                                                                                                       
  • 点击“Download AutoIt”按钮下载“Autoit”                                                                                                                                                                                                                                   
  • 现在通过点击“Download”按钮下载“Autoit Editor”。                                                                          
  • 如下所示点击链接。      下载之后我们将会得到如下图所示的两个安装文件,一个是autoit-v3-setup,另一个是SciTE4AutoIt3。  
  • 按照步骤分别安装上面两个程序
  • 成功安装后,打开AutoIT Editor。   
    打开“C:\Program Files (x86)\AutoIt3\SciTE” ,  并双击“SciTE.exe” ,会打开AutoIt Editor。
  • 打开元素识别器
    打开“C:\Program Files (x86)\AutoIt3”,并双击打开“Au3Info.exe”,会打开AutoIt 元素识别器(注意:使用完毕后,需手动关闭)

通过元素识别器查找元素并在AutoIt编辑器上编辑脚本

在这一部分,我们将看到以下内容,通过AutoIt识别器,如何在文件上传窗口找到元素(元素识别器是一个类似selenium IDE的工具,元素识别器找到窗口GUI或非HTML弹出窗口的元素,并提供元素的属性,比如 title, class, instance),以及如何使用3个方法在AutoIT Editor中编写脚本。
例子:我们将使用guru99网站的“Write to us”页面来上传简历。
点击“Write to us”页面的“选择文件”按钮后,我们需要调用AutoIT脚本。在点击“选择文件”后,控件立即转到autoit,autoit负责上传部分。
Runtime.getRuntime().exec("E:\\AutoIT\\FileUpload.exe");

最后,当我们运行selenium脚本时,它将填写表单——>上传简历——>提交表单。

  1. 打开文件识别器-先打开目录“C:\Program Files (x86)\AutoIt3”,并双击打开“Au3Info.exe”。

  2. 现在打开文件上传窗口,点击“选择文件”,这是windows活动  

  3. 将finder工具拖动到File uploader窗口的“文件名”框元素中,找到如下图所示的基本属性信息

    我们可以得到属性的值。title='Open', class='Edit' 和 instance='1' 。这些值在步骤4中用于编写AutoIT脚本。

  4. 现在打开AutoIT script editor。进入目录“C:\Program Files (x86)\AutoIt3\SciTE”,打开“SciTE.exe”。
    开始编写一个脚本,作用是选择一个用于上传的文件。

    根据需求,在写脚本时,有很多的方法供我们选择,但是现在我们将重点讨论以下方法,因为这些方法是编写文件上传脚本所需的:

    1. ControlFocus(" title "," text ",controlID ) //将输入焦点集中到一个窗口的给定控件上
    2. ControlSetText(" title "," text ",controlID ," 待上传的文件 " )//设置控件的文本
    3. ControlClick(" title "," text ",controlID ) //发送鼠标单击命令到给定控件

    您可以看到如下面的屏幕显示的一些方法。AutoIT的优点是它有点像Eclipse,它会自动提示一些方法。

    在AutoIT编辑器中,我们选择了“control focus”方法。在上面的步骤3中,元素识别器已经打开并最小化,而且元素已经确定了。现在我们打开元素识别器,并最大化显示。

    现在,我们将通过元素识别器获取上面三种方法的参数值,从“File name”文本框获取'ControlFocus' 和 'ControlSetText' 方法的参数,从“open”按钮获取“ControlClick”方法的参数值。

    ControlFocus方法参数值:

    此方法将焦点集中到文件上传器窗口的“File name”文本框。

    • 第一个参数标题为“open”。
    • 我们忽略第二个参数,这个地方不需要。
    • 第三个参数控制是class ='Edit '和Instance ='1 '的组合。就是“Edit1”。

    ControlSetText方法参数值:

    这个方法用于定义我们需要在“File name”文本框中上传的文件的路径。换句话说,我们可以说这个方法设置输入的文本为输入元素。
    1. 第一个参数标题为“open”。
    2. 忽略第二个参数,此处不需要。
    3. 第三个参数控制是class ='Edit '和Instance ='1 '的组合。就是“Edit1”。
    4. 第四个参数new text,我们输入需要上传的文件路径。
      ControlSetText("Open","","Edit1","E:\Resume\resume.doc") // This method input file path of a control.

      在执行上述步骤之后,不要关闭窗口(编辑器和元素识别器),保持打开状态。您需要再次打开file uploader窗口,以发现“open”按钮的属性,如下面的第5步所示。

  5. 现在将finder工具拖放到file uploader窗口的“Open”按钮元素上,以找到基本的属性信息。

    先前的值(就是“File name”文本框的属性值)会被“open”按钮的属性值覆盖。可以看到class属性现在被更改为“button”,以前是“edit”。

    我们可以获得如下图所以的属性值,其中title='Open', class='Button' and instance='1'。这些值用于编写Autoit脚本,如下所示。

    ControlClick方法的参数值:

    1、第一个参数标题为“open”。
    2、忽略第二个参数,此处不需要。
    3、第三个参数是class ='Button'和Instance ='1 '的组合。就是“Button1”。

    ControlClick("Open","","Button1") //This method click on 'Open' button of file uploader.

  6. 下面可以看到,处理文件上传程序的AutoIT脚本已经完成。现在可以关闭元素识别器并将脚本以“FileUpload”的名字保存在给定位置(E:/ AutoIT)。

    现在不能直接执行这个脚本,首先需要编译这个脚本。对于编译这个脚本,你有两个选项 " compile script x64 " and " compile script x86 ",如果你是32位的机器就选择 " compile script x86 ",64位机器就选择" compile script x64 "。

  7. 如下图所示,编译后生成文件“FileUpload exe”。现在就可以在selenium webdriver程序中使用这个文件。

    现在我们将在Selenium webdriver中使用这个AutoIT脚本。检查后面的输出。

在selenium中通过AutoIt上传文件

在Selenium脚本中,我们找到表单的元素,并将相应的数据填充到所需的地方。通过执行从AutoIT脚本生成的AutoIT exe文件来上传“resume.doc”文件,然后在selenium脚本中提交表单。

  • 打开Eclipse并开始编写代码。
  • 当selenium 点击选择文件按钮时,文件上传框打开。
  • 然后我们需要调用AutoIT脚本,此时控制权立即传给AutoIT,以便上传文件,最后控制权又交给selenium,过程如下所示。

  1. 在eclipse中开发selenium脚本。

    1. Runtime类允许脚本与脚本正在运行的环境进行交互。
    2. getRuntime()获得当前运行程序的运行环境。
    3. exec()方法执行AutoIT脚本(FileUpload.exe )。
      Runtime.getRuntime().exec("E:\\AutoIT\\FileUpload.exe");

      上面这句代码将会在selenium中调用AutoIt脚本,并上传文件。

  2. 在Eclipse中执行Selenium脚本。
    importjava.io.IOException;
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.firefox.FirefoxDriver;
    public class FileUpload {
    public static void main(String[] args) throws IOException {                             WebDriver driver=new FirefoxDriver();          driver.get("http://demo.guru99.com/selenium/autoit.html");            driver.findElement(By.id("postjob")).click();         driver.findElement(By.id("input_3")).sendKeys("Gaurav");                                                    driver.findElement(By.id("id_4")).sendKeys("test.test@gmail.com");                 driver.findElement(By.id("input_4")).click();         // below line execute the AutoIT script .Runtime.getRuntime().exec("E:\\AutoIT\\FileUpload.exe");     driver.findElement(By.id("input_6")).sendKeys("AutoIT in Selenium");                    driver.findElement(By.id("input_2")).click();driver.close();}
    }
  3. 验证“resume.doc”文件上传成功,感谢信息将会显示。

总结:

  • 下载并安装元素识别器和AutoIT Editor。
  • 打开用于操作的站点。
  • 元素识别器识别文件上传器窗口的元素。
  • 在元素识别器的帮助下,在编辑器中编写AutoIT脚本。
  • 在selenium webdriver脚本中使用Autoit脚本。
  • 执行selenium脚本。
  • 输出:文件上传成功。
本文由Gaurav Nigam提供

写在后记:初写博客,这个格式问题真是让人头疼。。。

selenium中怎么使用autoit相关推荐

  1. python executescript_在selenium中一些相对常用的JavaScript事件

    输入框输入: 1.找到输入框的id,然后进行输入操作 ordinal :输入框的id parameter :需要输入的内容 browser.execute_script("document. ...

  2. selenium查找文本_在Selenium中查找具有链接文本和部分链接文本的元素

    selenium查找文本 Selenium中CSS定位器是一个基本概念,每个旨在使用Selenium执行自动化测试的测试人员都应该意识到这一点. 在Selenium中充分使用CSS定位器可以帮助您以更 ...

  3. 在Selenium中按TagName定位元素

    Selenium定位器是处理网页上的元素时的关键. 从ID,名称,类,标记名,XPath,CSS选择器等定位器列表中,可以根据需要选择其中任何一种,然后在网页上找到Web元素. 由于与tagName或 ...

  4. Selenium Java教程– Selenium中的类名定位器

    Selenium中CSS Locator是编写脚本的最重要方面之一. 如果您无法通过使用Selenium中的任何CSS定位器来定位元素,那么精通Selenium自动化将是一项艰巨的任务. 硒提供多种定 ...

  5. chrome webdriver_(最新版)如何正确移除Selenium中的 window.navigator.webdriver

    摄影:产品经理产品经理的三文鱼炒饭 在<一日一技:如何正确移除Selenium中window.navigator.webdriver的值>一文中,我们介绍了在当时能够正确从Selenium ...

  6. 教你轻松截获 Selenium 中的 Ajax 数据

    之前我们介绍了 ajax-hook 来实现爬虫的过程中截获 Ajax 请求,可以看这篇文章如何用 Hook 实时处理和保存 Ajax 数据,在这里再另外介绍一个工具 BrowserMob Proxy, ...

  7. selenium中录制拖拽动作

    今天工作中遇到了selenium中录制拖拽动作需求:在同一个页面上,将一个table中的元素拖拽到另外一个table中. 通过查看帮助文档是使用dragAndDrop或类似的命令.根据使用方法drag ...

  8. selenium中js定位_Selenium中的定位剂

    selenium中js定位 1.什么是Selenium定位器? (1. What is a Selenium Locator?) Selenium Locators are used for iden ...

  9. selenium中的三种等待方法

    在selenium中,当我们定位的元素由于网络原因还没加载出来,浏览器找不到我们要定位的元素就会报错.等待方式的设置是保证脚本稳定有效运行的一个非常重要的手段,常用的等待方法有: sleep() -- ...

  10. selenium中键盘操作

    前言 在web测试中,可能会遇到一些需要键盘操作.在selenium中,提供了一个Keys类,来处理键盘操作.Keys类中,几乎提供了所有的键盘快捷键组合操作. DEMO 举个例子,在百度首页,输入内 ...

最新文章

  1. Hibernate中基本概念
  2. Chapter3_操作符_方法调用中的别名问题
  3. stm32cubemx中文_用 STM32 通用定时器做微秒延时函数(STM32CubeMX版本)
  4. 【ArcGIS遇上Python】三种利用Python批量处理地理数据的方法——以栅格数据投影转换为例
  5. ArchSummit分享 | 高德地图App架构演化与实践
  6. PAT乙级(1036 跟奥巴马一起编程)
  7. ls –l total 0_W3 Total Cache与WP Super Cache –打包中的哪一个领先?
  8. 获取验证码 60秒后重新获取
  9. 23种Python设计模式之工厂方法模式详解
  10. 设计配色的基本知识以及原理
  11. JAVA跑步计时器app_锻炼计时器app
  12. 创建带有实时在线数据备份的指纹考勤系统
  13. Latex 1: 解决latex中遇到一个常见错误:Improper alphabetic constant.
  14. 日本研发创可贴式的皮肤传感器
  15. JavaWeb自学笔记
  16. PEM文件格式详细解析
  17. Visual Paradigm在 Windows系统电脑上安装
  18. OPC UA客户端工具Softing OPC Client使用_推荐使用
  19. oracle rfs进程过多,Oracle物理备库RFS进程消失,不能启动--解决
  20. 互联网人没有想多——互联网人能当中国的新中产的机遇和挑战

热门文章

  1. 计算机网络实验(Wireshark 抓包工具使用、WinPcap 编程、协议分析流量统计程序的编写)
  2. web前端页面优化详解
  3. 短除法求解最大公约数c语言,[编程入门]最大公约数与最小公倍数-题解(C语言代码)(短除法)...
  4. 猿如意|IntelliJ IDEA Community下载安装以及基础开发设置和快捷键设置的详细教程
  5. Vulkan教程 - 08 着色器及编译SPIR-V
  6. (二)大话深度学习编译器中的自动调优·DSL与IR
  7. C#自制简易弹钢琴谱
  8. arcgis android离线地图,Arcgis Android API开发之离线地图
  9. Eclipse中文版的,怎么变成英文版
  10. 成都Uber优步司机奖励政策(3月10日)