欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

selenium中怎么使用autoit

程序员文章站 2022-07-02 14:47:18
...

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


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

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



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


在这一部分,我们将看到以下内容,通过AutoIt识别器,如何在文件上传窗口找到元素(元素识别器是一个类似selenium IDE的工具,元素识别器找到窗口GUI或非HTML弹出窗口的元素,并提供元素的属性,比如 titleclassinstance),以及如何使用3个方法在AutoIT Editor中编写脚本。

例子:我们将使用guru99网站的“Write to us”页面来上传简历。

点击“Write to us”页面的“选择文件”按钮后,我们需要调用AutoIT脚本。在点击“选择文件”后,控件立即转到autoit,autoit负责上传部分。

Runtime.getRuntime().exec("E:\\AutoIT\\FileUpload.exe");

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

selenium中怎么使用autoit

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

selenium中怎么使用autoit

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

selenium中怎么使用autoit

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

selenium中怎么使用autoit

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

selenium中怎么使用autoit


现在打开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,它会自动提示一些方法。

selenium中怎么使用autoit

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

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

ControlFocus方法参数值:

此方法将焦点集中到文件上传器窗口的“File name”文本框。
  • 第一个参数标题为“open”。
  • 我们忽略第二个参数,这个地方不需要。
  • 第三个参数控制是class ='Edit '和Instance ='1 '的组合。就是“Edit1”。

selenium中怎么使用autoit

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.

    selenium中怎么使用autoit


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

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

selenium中怎么使用autoit

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

selenium中怎么使用autoit

ControlClick方法的参数值:

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

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

selenium中怎么使用autoit




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

selenium中怎么使用autoit

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

selenium中怎么使用autoit

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

selenium中怎么使用autoit

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

在selenium中通过AutoIt上传文件

在Selenium脚本中,我们找到表单的元素,并将相应的数据填充到所需的地方。通过执行从AutoIT脚本生成的AutoIT exe文件来上传“resume.doc”文件,然后在selenium脚本中提交表单。
  • 打开Eclipse并开始编写代码。
  • 当selenium 点击选择文件按钮时,文件上传框打开。
  • 然后我们需要调用AutoIT脚本,此时控制权立即传给AutoIT,以便上传文件,最后控制权又交给selenium,过程如下所示。

    selenium中怎么使用autoit

  1. 在eclipse中开发selenium脚本。
    1. Runtime类允许脚本与脚本正在运行的环境进行交互。
    2. getRuntime()获得当前运行程序的运行环境
    3. exec()方法执行AutoIT脚本(FileUpload.exe )。
      Runtime.getRuntime().exec("E:\\AutoIT\\FileUpload.exe");
      上面这句代码将会在selenium中调用AutoIt脚本,并上传文件。

      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("aaa@qq.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”文件上传成功,感谢信息将会显示。
    selenium中怎么使用autoit


总结:

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

本文由Gaurav Nigam提供



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