当我们全神贯注做某件很重要事情时,电脑页面上突然弹出窗口,这会使人感到非常的恼怒。所以处理这些让人烦心的弹出窗口及显得很有必要了。
1、如何在Selenium WebDriver中处理windows弹出窗口
2、通过把控件从Selenium WebDriver传输到AutoIt来上传或下载文件和图像
如何从程序中调用AutoIt脚本
但首先,我们需要来了解AutoIt是什么,如何安装和使用它。
什么是AutoIt?
AutoIt V3是一款免费软件工具,可用于在任何Windows环境中执行任何自动化操作。Autolt脚本由BASIC语言编写。它可以模拟击键,鼠标移动和窗口/控制操作的任何组合行为。
通过AutoIt,我们可以为我们的日常操作(如文件输入/输出操作,应用程序处理,资源监控和管理任务等)准备脚本。但是在本文中,我们只讨论在Selenium WebDriver中如何处理弹出窗口。
在通过Selenium进行自动化或使用其他工具进行自动化时,我们经常会遇到Windows弹出窗口。由于Selenium仅限于自动化浏览器使用,所以桌面窗口超出了范围。Web应用程序有时需要与桌面一起执行文件的下载和上传。有使这些工作流程自动化的工具,如AutoIt,Robot Framework,Silk Test等。
我们可以通过将我们的控件从Selenium WebDriver传输到AutoIt 来上传或下载文件或图像。所以我们需要从程序中显式调用AutoIt脚本。
AutoIt下载和安装--分布指南
一旦下载,请在系统上安装AutoItV3设置,按照以下步骤进行安装。
步骤#1-点击安装文件
步骤#2-接受许可协议
步骤#3-根据操作系统选择64位或32位选项,在这里选择的是64位
步骤#4-单击下一步,然后通过双击选择要执行的操作:这里选择是运行脚本
步骤#5-选择所需组件,然后单击下一步。也可以选择所有选中的默认值
步骤#6-选择文件安装位置,然后单击安装。安装需要几秒钟。完成后,安装脚本编辑器
AutoIt脚本编辑器 - 安装
它是一个帮助查找命令的编辑器。
如何编写AutoIt脚本:
· 通过AutoItV3 Windows信息工具识别Windows控件,64位或32位,具体取决于您的操作系统
· 点击Finder工具,鼠标悬停在想要的属性对象上
· 它将捕获弹出窗口的属性,如标题,类,位置,大小,样式,句柄等
AutoIt V3窗口信息查找工具
· 然后借助上述捕获的属性,在SciTE脚本编辑器或记事本中编写脚本,并使用.au3扩展名保存脚本
· 现在使用AutoIt脚本将.au3脚本编译为EXE转换器,将.au3文件转换为.exe文件
· 在该编辑器中提供源和目标文件夹位置,然后单击转换按钮,它将创建一个.exe文件
AutoIt脚本到Exe转换器:
· 或者右键单击保存.au3脚本,它将显示编译选项。选择编译到64位或编译到32位选项,并将在同一文件夹中创建.exe文件。
· 遇到Selenium测试用例中的下载或上传弹出窗口,执行.exe文件
· 在脚本中调用.exe文件的语法是:Runtime.getRuntime().exec("path of exe file");
下载弹出示例:
如何下载文件?
可以使用以下AutoIt脚本来处理下载弹出窗口:
我们已经在前面的步骤中获得文件下载弹出属性,如Tile,Class,Position和Size等等。现在使用标识的Windows控件构建一个AutoIt脚本:
1 WinWait("[TITLE:Opening ; CLASS:MozillaDialogClass]","", 10) //Explanation - "It will wait for the title - opening , type- mozilladialogclass, for 10 secs 2 If WinExists("[TITLE:Opening ; CLASS:MozillaDialogClass]") Then // if condition 3 WinActivate("[TITLE:Opening ; CLASS:MozillaDialogClass]") // if that title is found it will activate and perform below actions 4 Send("{DOWN}") // perform down arrow operation 5 Sleep(10) // wait for 10 secs 6 Send("{TAB}") // perform tab operation 7 Sleep(10) // wait for 10 secs 8 Send("{TAB}") // perform tab operation 9 Sleep(10) // wait for 10 secs 10 Send("{ENTER}") // press enter button 11 EndIf // end of if condition |
上传弹出示例;
如何上传文件?
您可以使用以下AutoIt脚本来处理上传窗口弹出窗口,使用标识的Windows控件构建AutoIt脚本:
1 WinWaitActive("File Upload") // enter the title of the pop up 2 Send("Path of the file to enter") // enter the path of the file to upload 3 Send("{ENTER}") / press enter |
保存并编译此脚本,并在需要上传文件的selenium脚本中执行该.exe文件
登陆弹出窗口示例
如何输入用户名和密码到上述登录弹出窗口?
可以使用以下AutoIt脚本来处理登录弹出窗口:
1 WinWaitActive("Authentication Required","","10") 2 If WinExists("Authentication Required") Then 3 Send("username{TAB}") 4 Send("Password{Enter}") 5 EndIf' |
如何测试AutoIt脚本是否显示为预期结果,而不是将其集成到selenium脚本中?
按照以下步骤:
· 在编译脚本之前,双击.au3文件 - 它将显示脚本中的错误
· 如果没有发现错误,请将您的脚本转换为.exe文件
· 手动生成文件下载流行情景
· 现在弹出窗口点击.exe文件,能够接受弹出并下载文件
AutoIT的缺点:
· 它只适用于Windows操作系统
· 具有基本的编码能力
· 虽然这很有用,但是对于初学者来说却有点复杂
AutoIt还能做什么?
除了Windows弹出窗口之外,我们还可以使用AutoIt来自动执行文件搜索,参考下面的示例:
在计算机中进行文件搜索脚本:
1 $search = FileFindFirstFile("*How*") // enter the search string 2 If $search = -1 Then // condition not satisfied show error message 3 MsgBox(1, "Error", "No files/directories matched the search pattern") 4 Exit 5 EndIf 6 While 1 7 $file = FileFindNextFile($search) 8 If @error Then ExitLoop 9 MsgBox(4096, "File:", $file) 10 WEnd 11 FileClose($search) |
编译并保存此脚本,在当前工作目录中执行该.exe文件。它将搜索以"How"开头的所有文件,并显示一个消息框。
使用时应该注意的一点:
· 不要忘记用.au3扩展名保存脚本
· 编译脚本并创建一个.exe可执行文件
· 弹出窗口或任何您想要处理的内容应该事先存在,以便.exe文件可以正常工作