你好呀~

Autoit 制作上传工具完美版

一. 制作上传器

  在ui自动化过程中经常遇到需要上传的动作,我们可以使用input标签来送值,但这样不太稳定,所以建议使用autoit制作出来的exe工具。

  下面就教大家如何制作上传器,如何使用吧!

  新建一个文本文件,命名为uploader.au3,将下面代码复制进去。

  这段代码是经过我反复测试的,大家可以放心用哦~

upload()


Func upload()
    WinWait("[CLASS:#32770]","",3)
    If WinExists("打开") then
        ControlFocus("打开","","Edit1")
        Sleep(500)
        ;输入需要上传的文件路径
        ControlSetText("打开", "", "Edit1", $CmdLine[1])
        Sleep(500)
        ;点击【打开】按钮
        ControlClick("打开", "","Button1")
    EndIf
    
    ;找不到路径时,会触发确认弹窗,点确认,再点取消,该Button1为确认按钮
    Sleep(1000)
    If WinExists("打开") then
        ControlClick("打开", "","Button1")
    EndIf
    
    ;路径为空时;或者点过上述的确认弹窗后,不能让它挂在那里,点取消
    Sleep(1000)
    If WinExists("打开") then
        ControlClick("打开", "","Button2")
    EndIf
    
EndFunc

 

二. 转化为可执行的exe软件

  使用autoit软件里的 autoit script to exe 工具,选择刚才的uploader.au3脚本进行转化。

 

三. 测试该exe执行情况

  调用exe的执行过程封装在seliky里面了,大家也可以用os模块调用exe。

  (注:seliky是我自己发版的库,用起来比较顺心,大家想用的话可以自行安装:pip  install seliky -i https://pypi.org/simple)

import time
from seliky import WebDriver2


def test_autoit():
    """
    在百度识图官网,点击识图按钮,触发系统弹窗,测试上传器执行情况
    """
    bs = WebDriver2()
    bs.open_browser()
    bs.get("https://graph.baidu.com/pcpage/index?tpl_from=pc")
    bs.click('//span[@class="graph-d20-search-wrapper-camera"]')
    bs.click('//form[@class="general-upload-imgform"]')
    uploader_path = 'chrome_uploader.exe'

    # autoit 上传器测试
    bs.upload_with_autoit('', uploader_path)  # 路径为空的情况
    # bs.upload_with_autoit('d://picture//null.jpg', uploader_path)  # 路径错误的情况
    # bs.upload_with_autoit('d://picture//girl.jpg', uploader_path)  # 路径正常的情况

    time.sleep(5)


if __name__ == '__main__':
    test_autoit()

 

posted @ 2021-10-15 15:41  测神  阅读(264)  评论(0编辑  收藏  举报