接上一篇,简单的python 图片识别做好了,那么就该把这个弄到robot framework 里面使用了
首先我们建一个Library 然后将这个Library导入到robot framework 里面。
现在来创建 Library ,首先在 C:\Python27\Lib\site-packages (其中C:\Python27为python的安装目录)目录新建一个文件夹 yanzhengmaLibrary,然后将yanzhengma.exe和yanzhengma.py放入该目录。在该目录下新建一个__init__.py 为文件,文件内容如下:
其中class 的名字跟文件夹的名字相同,并且传入参数为我们自己定义的类。
然后就可以在robot frameworl 里面引用这个Library了,
网页的验证码我们还是需要将验证码保存下来,才能识别,因此还是需要安装AutoItLibrary的包
安装AutoItLibrary 是首先需要安装pywin32,下载地址为:https://sourceforge.net/projects/pywin32/files/pywin32/
需要根据python版本和python的位数(32/64)来下载。安装完成之后还是需要下载AutoItLibrary
下载地址为:https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/robotframework-autoitlibrary/AutoItLibrary-1.1.zip
将AutoItLibrary解压之后 ,以管理员的权限打开cmd 并切换到AutoItLibrary目录,然后执行 python setup.py install 安装 。
如果是64为机器还是需要安装 autoit 下载地址为:https://www.autoitscript.com/files/autoit3/autoit-v3-setup.exe。
以上准备好了之后我们就可以使用它来下载图片了。
robot framework 代码如下:
保存图片
[Arguments] ${imageUrl}
[Documentation] 用于浏览器另存为
Win Wait 另存为 \ 10
Win Activate 另存为
Win Wait Active 另存为 \ 10
Control Set Text \ \ Edit1 ${imageUrl}
Control Click \ \ Button1
Win Wait 确认另存为 \ 2
${confirm} Win Exists 确认另存为
Run Keyword If ${confirm}==1 Win Activate 确认另存为
Run Keyword If ${confirm}==1 Control Click \ \ Button1
Sleep 4s
右键另存为
[Arguments] ${imgId} ${shortcutKey} # 图片标签id|浏览器另存为快捷键
[Documentation] 传入图片标签id 和浏览器另存为快捷键
${title} Get Title
${cx} Get Horizontal Position //*[@id="${imgId}"]
${cy} Get Vertical Position //*[@id="${imgId}"]
${conx} Control Get Pos X \ \ Chrome_RenderWidgetHostHWND1
${cony} Control Get Pos Y \ \ Chrome_RenderWidgetHostHWND1
${ix} Win Get Pos X ${title}
${iy} Win Get Pos Y ${title}
${mx} Evaluate int(${cx})+int(${ix})+int(${conx})+18
${my} Evaluate int(${cy})+int(${iy})+int(${cony})+38
Win Activate ${title}
Mouse Click RIGHT ${mx} ${my}
Send ${shortcutKey}
其中右键另存为的关键字需要传入浏览器另存为的快捷键,就是鼠标右键点击图片时,弹出的菜单。chrome的邮件另存为快捷键为 v
最后调用我们yanzhengmaLibrary的get code2 ,并传入两个参数,一个是我们编译的exe文件,另外一个就是图片的路径。
网友评论