新书
速递
吴老的java版《selenium webdriver 实战宝典》和python版《selenium Webdriver 3.0 自动化测试框架实战指南》出版了,代码拿来就能用。
文 | Theend
Selenium+Python自动化测试
一、前言
进行web自动化测试时,可以使用Xpath、CSS、ID、name、绝对路径、相对路径等各种方式对页面元素进行定位,但对于导入、导出、另存为等操作弹出的Windows文件选择框,selenium就定位不了,所以就需引用AutoIt工具来实现。
二、背景介绍
什么是AutoIt ?
AutoIt v3 是用以编写并生成具有 BASIC 语言风格的脚本程序的免费软件,它被设计用来在Windows GUI(用户界面)中进行自动操作。通过它可以组合使用模拟键击、鼠标移动和窗口/控件操作等来实现自动化任务,而这是其它语言所无法做到或尚无可靠方法实现的(比如VBScript和SendKeys)。
AutoIt的主要功能?
1)模拟键击动作(支持大多数的键盘布局)
2)模拟鼠标移动和点击动作。
3)对窗口进行移动、调整大小和其它操作。
4)直接与窗口的“控件“交互(设置/获取 文字、移动、关闭,等等)
5)配合剪贴板进行剪切/粘贴文本操作
6)对注册表进行操作
三、准备工作
1. 准备python环境及各种插件(需要什么装什么);安装PyCharm工具
2. 安装AutoIt
下载地址:https://www.autoitscript.com/site/autoit/downloads/
安装完成后可以在开始菜单看到如下显示:
四、实战:用Autoit定位Windows弹框
目的:导入本地文件
手动操作步骤:
1)点击页面“选择文件”按钮----弹出Windows文件选择框
2)在Windows弹框中选择文件
3)点击弹框“打开”按钮
自动化操作思路:
1)用Xpath页面元素定位的方法,定位并点击页面“选择文件”按钮
2)调用AutoIt实现Windows弹框定位并写成脚本
3)把脚本编译为可执行文件
4)回到Pycharm代码中调用可执行文件
具体步骤:
第一步:页面元素定位
在页面中定位并点击“选择文件”按钮,显示如下所示弹框,因为是页面外Windows弹框,需要使用AutoIt工具实现。
driver.find_element_by_xpath("//span [contains(.,'选择文件')]").click()
第二步:写脚本
1)点击“开始”--- 找到“AutoIt V3”工具包 --- 点击“AutoItWindow Info(x64)”工具,版本按本机系统来选择,显示如下:
2)鼠标选中“FinderTool”,拖动到“文件名”输入框中,即可定位该输入框。重复上述步骤定位“打开”按钮。如图显示:
3)使用AutoIt工具包下的“SciTE Script Editor”写脚本,并保存为au3格式。
ControlFocus("打开","","Edit1")
WinWait("[CLASS:#32770]","",10)
ControlSetText("打开","", "Edit1", "E:\SVN\升级目录\20190418\导入模板.xlsx")
Sleep(2000)
ControlClick("打开","","Button1")
第一行:
ControlFocus ( "title", "窗口文本",controlID) 设置输入焦点到指定窗口的某个控件上;
第二行:
WinWait ( "title" , "窗口文本" , 超时时间 ) 暂停脚本的执行直至指定窗口存在(出现) 为止;
第三行:
ControlSetText ( "title", "窗口文本",controlID, "新文本" ) 修改指定控件的文本;
第四行:Sleep 延迟执行
第五行:ControlClick ( "title", "窗口文本",控件ID , 按钮 , 点击次数 ) 向指定控件发送鼠标点击命令;
其中:“title”即AutoIt Window Info识别出的Title字段(上图标红部分), “controlID”即AutoItWindow Info识别出的Class和Instance的拼接,就是ClassnameNN的值。
第三步:编译为可执行文件
使用AutoIT工具包下的Complie Script to .exe工具把刚编写的脚本编译成可执行文件,操作如下:
注意:如果页面报错提示如下:需检查脚本中引号的使用是否正确。特别是第一行和第三行。
第四步:调用可执行文件
1)打开“pycharm” ,在工程文件夹“venv”的同级目录下放入文件夹“autoit”以及之前的俩文件。刷新列表即可查看,如下显示:
2)在代码中写入:
import os
os.system(os.getcwd() + "\\autoit\\import.exe")
代码运行后,文件导入成功。
光荣之路测试开发培训班招生简章
内推:阿里 | 测试开发
?点击链接直达或公众号内回复“2”
招聘QQ群:203715128
文章评论