Selenium中的AutoIT教程:如何使用它?

Selenium中的AutoIt是什么?

AutoIt 是一种免费的脚本语言,旨在自动化Windows GUI和通用脚本。它结合使用鼠标移动、击键和窗口控制操作来自动化Selenium WebDriver无法完成的任务。

如何下载和安装AutoIT

步骤1):访问此链接。

步骤2):将鼠标悬停在“Autoit”和“Autoit Editor”下拉菜单上。

Download And Install AutoIT

步骤3) 单击“AutoIT”下载选项。

Download And Install AutoIT

步骤4):点击“下载Autoit”按钮下载“Autoit”。

Download And Install AutoIT

步骤5):现在点击“下载”按钮下载“Autoit编辑器”。

Download And Install AutoIT

步骤6) 点击如下图所示的链接。

Download And Install AutoIT

下载后,您将获得两个安装文件,如下图所示,第一个是 AutoIt version 3 安装程序,第二个是 Scitautoit3

Download And Install AutoIT

步骤7):要安装AutoIT,请一个接一个地点击两个AutoIT安装程序。

步骤8):成功安装后,打开AutoIT编辑器。

转到“C:\Program Files (x86)\AutoIt3\SciTE”

Download And Install AutoIT

并点击“SciTE.exe”文件,AutoIT编辑器将如下图所示打开。

Download And Install AutoIT

步骤9):现在打开元素标识符。

转到“C:\Program Files (x86)\AutoIt3”

Download And Install AutoIT

并点击“Au3Info.exe”文件,元素标识符将如下图所示打开。

Download And Install AutoIT

注意:完成此元素标识符后,您需要手动关闭它,它不会自动关闭。

如何在Selenium中使用AutoIT

在本节中,我们将介绍如何使用AutoIt编辑器,如何通过AutoIT元素标识符(元素标识符是一种类似于Selenium IDE的工具,它可以找到窗口GUI或非HTML弹出窗口的元素,并提供元素的属性,如标题实例)查找文件上传器窗口上的元素,以及如何使用3种方法在AutoIT编辑器上编写脚本。

例如:我们将使用guru99的“联系我们”页面上传简历(Doc文件)。

点击“联系我们”页面上的“选择文件”按钮后,我们需要调用AutoIT脚本。点击“选择文件”后,控制权立即转移到AutoIT,以下语句负责上传部分。

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

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

Use AutoIT In Selenium

步骤1):现在打开元素标识符——转到“C:\Program Files (x86)\AutoIt3”并点击“Au3Info.exe”文件,元素标识符窗口将如下图所示打开。

Use AutoIT In Selenium

步骤2):现在点击“选择文件”打开文件上传器窗口,这是一个Windows活动。

Use AutoIT In Selenium

步骤3):将查找工具拖到文件上传器窗口的“文件名”框元素上,以查找基本属性信息,如下图箭头所示。

Use AutoIT In Selenium

我们可以获取属性值,即title='Open'class='Edit'instance='1',如下图所示。这些值用于编写AutoIT脚本示例,如下步骤4所述。

Use AutoIT In Selenium

步骤4):现在打开AutoIT脚本编辑器,转到“C:\Program Files (x86)\AutoIt3\SciTE”并点击“SciTE.exe”,如第一主题的步骤7所示。

开始编写脚本以选择要上传的文件。

有许多方法可供我们根据需要用于脚本,但现在我们将重点关注以下方法,因为这些方法是编写文件上传脚本所必需的。

  1. ControlFocus(” 标题 “,” 文本 “,controlID ) //将输入焦点设置到窗口上的给定控件。
  2. ControlSetText(” 标题 “,” 文本 “,controlID ,” 需要上传的文件路径 ” ) //设置控件的文本。
  3. ControlClick(” 标题 “,” 文本 “,controlID ) //向给定控件发送鼠标点击命令。

如下图所示,显示了许多方法。AutoIT的一个优点是它有点像Eclipse,可以为您提供一些方法建议。

Use AutoIT In Selenium

在AutoIT编辑器中,我们选择了 “control focus” 方法。元素标识符已打开并最小化,因为元素已在上述步骤3中标识。我们可以通过最大化它来打开它。

现在,我们将从元素标识符中获取“ControlFocus”和“ControlSetText”方法的参数值,因为这些方法作用于相同的元素,即“文件名”文本框,但“ControlClick”方法需要捕获不同元素的值,即“打开”按钮。

ControlFocus 方法的参数值

此方法将焦点设置到文件上传器窗口的“文件名”文本框。

  • 第一个参数 title 是“打开”。
  • 我们忽略第二个参数,text 不需要。
  • 第三个参数 controlID 是类名='Edit'和实例='1'的组合,即“Edit1”。
    ControlFocus("Open","","Edit1") // This method sets input focus to 'File name' text box.

Use AutoIT In Selenium

ControlSetText 方法的参数值

此方法用于定义需要上传到“文件名”文本框中的文件路径。换句话说,此方法用于设置输入元素的文本。

  • 第一个参数 title 是“打开”。
  • 我们忽略第二个参数,text 不需要。
  • 第三个参数 controlID 是类名='Edit'和实例='1'的组合,即“Edit1”。
  • 第四个参数 new text, 我们传入需要上传的文件路径。
    ControlSetText("Open","","Edit1","E:\Resume\resume.doc") // This method input file path of a control.

Use AutoIT In Selenium

完成以上步骤后,请勿关闭窗口(编辑器和元素标识符),请保持它们打开。您需要再次打开文件上传器窗口,以查找“打开”按钮的属性,如下步骤5所示。

步骤5):现在将查找工具拖到文件上传器窗口的“打开”按钮元素上,以查找基本属性信息。

以前的值(即“文件名”文本框的属性)被“打开”按钮的新值覆盖。您可以看到在AutoIT元素标识符窗口中,类属性现在已更改为“button”,而之前是“edit”。

Use AutoIT In Selenium

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

Use AutoIT In Selenium

ControlClick 方法的参数值

此方法点击文件上传器窗口的“打开”按钮。

  • 第一个参数 title 是“打开”。
  • 我们忽略第二个参数;text 不需要。
  • 第三个参数 controlID 是类和实例的组合,即“Button1”。
ControlClick("Open","","Button1") //This method click on 'Open' button of file uploader.

Use AutoIT In Selenium

步骤6):您可以在下面的屏幕中看到,AutoIT脚本已完成以处理文件上传器。现在您可以关闭元素标识符并将脚本保存为“FileUpload”到指定位置(E:\AutoIT)。

Use AutoIT In Selenium

现在您不能直接执行此脚本,您需要编译此脚本。

要编译此脚本,您有两个选项:“ compile script x64 ”和“ compile script x86 ”,如果您的Windows是32位机器,则选择“ compile script x86 ”,如果是64位机器,则选择“ compile script x64 ”。

Use AutoIT In Selenium

步骤7):“FileUpload exe” 文件在编译后生成,您可以在下面的屏幕中看到。现在我们可以在Selenium WebDriver脚本中使用此文件。

Use AutoIT In Selenium

现在我们将在Selenium WebDriver中使用此AutoIT脚本。请查看下面的输出。

使用Autoit在Selenium中上传文件

在Selenium脚本中,我们找到表单的元素并根据需要填写每个元素的数据,然后通过执行由AutoIT脚本生成的AutoIT exe文件上传“resume.doc”文件,然后允许在Selenium AutoIt脚本中提交表单。

  • 打开Eclipse并开始编写代码。
  • 当Selenium点击“选择文件”按钮时,文件上传框会打开。
  • 然后我们需要调用AutoIT脚本,控制权立即转移到AutoIT以上传文件,然后控制权返回给Selenium,如下所示。

File Upload In Selenium Using Autoit

步骤1):在Eclipse中开发Selenium脚本。

  • Runtime 类允许脚本与脚本运行的环境进行交互。
  • getRuntime() 获取与此进程关联的当前运行时。
  • exec() 方法执行AutoIT脚本 (FileUpload.exe)。
Runtime.getRuntime().exec("E:\\AutoIT\\FileUpload.exe");

以上代码行将在Selenium中调用AutoIT脚本并上传文件。

File Upload In Selenium Using 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("https://demo.guru99.com/test/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文件成功上传并显示感谢消息。

File Upload In Selenium Using Autoit

为什么要使用AutoIt?

Selenium是一个开源工具,旨在自动化不同浏览器上的基于Web的应用程序,但要处理应用程序中的窗口GUI和非HTML弹出窗口。由于Selenium无法处理这些基于窗口的活动,因此需要AutoIt。

Use AutoIt

继续本AutoIt教程,我们将学习如何使用AutoIt在Selenium WebDriver中上传文件。这里我们需要三个工具才能完成此操作。

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

结论

  • 已下载并安装元素标识符和AutoIT编辑器。
  • 已打开要进行操作的网站。
  • 元素标识符识别文件上传器窗口的元素。
  • 在编辑器的帮助下,使用元素标识符准备了AutoIT脚本。
  • Autoit脚本用于Selenium webdriver脚本。
  • 执行了Selenium脚本。
  • 输出:文件上传成功。