美文网首页
robot framework 识别验证码

robot framework 识别验证码

作者: erika002 | 来源:发表于2017-12-14 19:18 被阅读0次

        接上一篇,简单的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文件,另外一个就是图片的路径。

    相关文章

      网友评论

          本文标题:robot framework 识别验证码

          本文链接:https://www.haomeiwen.com/subject/bhqlwxtx.html