工具下载
非input标签上传文件,就需要借助第三方工具,如AutoIT。
AutoIT下载
安装步骤略
使用
1.打开Auto Window Info
找到这个打开
拖住红框里面的标到需要定位的地方记录下来
2.打开SciTE Script Editor
打开后,修改为UTF-8,不然输入中文会乱码
按照刚刚定位获取的信息写,保存文件为.au3,我保存为了upfile.au3
$fileName=$cmdline[1]
; 等待5秒钟,让上传窗口出现
WinWait("[CLASS:#32770]","",5)
;把输入焦点定位到上传输入文本框中,类型为Edit,编号为1,也就是上面获取到内容
ControlFocus("打开","","Edit1")
;在文件名那里,输入需要上传的文件绝对路径
ControlSetText("打开","","Edit1",$fileName)
;等待上传时间,单位是毫秒 1秒 = 1000 毫秒,文件大的话需要设置长点
Sleep(2000)
;点击"打开"按钮,也就是上传,完成整个上传过程
ControlClick("打开","","Button1")
3.转换文件
接下来把upfile.au3
文件转换为.exe文件,打开下面这个
4.Python部分代码编写
这里只放了主要代码展示
import os
def upload_file(exe_path, file_path):
# exe_path 生成的upfile.exe的路径
# file_path 要上传的文件的路径
try:
if os.path.exists(exe_path):
os.system('%s %s' % (exe_path, file_path))
except Exception as e:
raise e
if __name__ == '__main__':
select_photos = driver.find_element(by=By.XPATH, value='//button[@class="xxx"]')
#点击了上传文件的按钮
select_photos.click()
exe_path = r"C:\\Users\\Admin\\Desktop\\upfile.exe"
file_path = r"C:\Users\Admin\Desktop\PRD\15.jpg"
upload_file(exe_path,file_path)