python需要上传图片或者上传文件的方法【autoit3】

 

首先我们需要去官网下载  autoit3

https://www.autoitscript.com/site/autoit/downloads/

 

 

然后我们可以获取安装之后打开 

 

 

 

会得到这样一个页面,这个工具能帮助我们去识别上传文件的弹出框

 

 

 

将指针拖动到我们的上传文件的路径

 

 

然后我们返回文件夹,打开 SciTE

 

 

 

 

 

ControlFocus("打开","","Edit1")  #这个相当于selenium的识别窗口

ControlSetText("打开","","Edit1","D:\视频文件\Farrer Park Hospital Corporate Video.mp4") # 这个是编辑窗口输入的内容
Sleep(2000)
ControlClick("打开","","Button1") # 点击打开按钮,进行上传操作

 

保存文件之后,我们需要将这个文件转换成exe可执行文件

 

这个时候我们去 Aut2Exe

 

 

 

然后将转换的exe路径拿到,我们就可以进行上传操作了

 

可以先试试在cmd界面能否上传

 

"D:\file_upload_utils.exe" "chrome" "D:\视频文件\Farrer Park Hospital Corporate Video.mp4"  # 这里是封装了 chrome的执行,因为不同浏览器的操作不一样需要自行去判断

 

 

 

 接下来可以对 SciTE中的上传文件的进行封装 

;first make sure the number of arguments passed into the scripts is more than 1
If $CmdLine[0]<2 Then Exit EndIf ;if parmas num <2 ,then break
;$CmdLine[0] ;参数的数量
;$CmdLine[1] ;第一个参数 (脚本名称后面)
;$CmdLine[2] ;第二个参数
;都是从cmd传入参数
 handleUpload($CmdLine[1],$CmdLine[2])

;定义上传函数,有两个参数,第一个是浏览器名字,第二参数是文件路径
 Func handleUpload($browser, $uploadfile)
     Dim $title                          ;定义一个title变量
            ;根据弹窗的title来判断是什么浏览器
            If $browser="ie" Then                          ; 代表IE浏览器
                  $title="选择要加载的文件"
            ElseIf $browser="chrome" Then               ; 代表谷歌浏览器
                 $title="打开"
            ElseIf    $browser="firefox" Then             ; 代表火狐浏览器
                  $title="文件上传"
            EndIf

            if WinWait($title,"",4) Then ;等待弹出出现,最大等待时间是4秒
                   WinActivate($title)                  ;找到弹出窗口之后,激活当前窗口
                   ControlSetText($title,"","Edit1",$uploadfile)   ;把文件路径放入输入框,此”Edit1“是用FinderTool获取到的
                   ControlClick($title,"","Button1")                ;点击保存或者打开或者上传按钮,此“Button1”使用FinderTool获取到的
            Else
            Return False
            EndIf
 EndFunc

 

 

然后就能上传视频了,附一个示例代码

import os
from common.config_utils import local_config

current_path = os.path.dirname(__file__)
file_path = os.path.join(current_path, local_config.get_upload_path)


def upload_file(browser, file_path, file_exe_path=local_config.get_upload_path):
    """上传文件"""
    executeFile = file_exe_path
    cmd = "\"" + executeFile + "\"" + " " + "\"" + browser + "\"" + " " + "\"" + file_path + "\""
    os.popen(cmd)


upload_file("chrome", "D:\视频文件\Farrer Park Hospital Corporate Video.mp4")

 

封装代码

 

    def upload_file(self, browser, file_path, file_exe_path=local_config.get_upload_path):
        """上传文件"""
        try:
            """上传文件"""
            exe_file = file_exe_path
            cmd = "\"" + exe_file + "\"" + " " + "\"" + browser + "\"" + " " + "\"" + file_path + "\""
            cd = os.popen(cmd)
            self.wait(2)
            cd.close()
        except Exception as e:
            logger.error("当前脚本不能执行原因是: %s" % e)
            self.screenshot_as_file()

 

 

 

原文:https://www.cnblogs.com/yajing-zh/p/5076881.html

 

posted @ 2021-08-27 10:19  罐装七喜  阅读(555)  评论(0编辑  收藏  举报