1.带有input标签的,直接把需要上传的文件路径输入到标签内部;
2.使用第三方软件AutoIt。
以下主要描述使用AutoIt生成exe文件实现自动上传文件。
一、下载安装AutoIt
参考博客 https://www.cnblogs.com/sunjump/p/7268805.html
二、安装后需要使用的文件
三、使用步骤
我使用的是32位的,其中
- AutoIt Window Info (x86) 打开选择文件弹出框检测器,检测出来的属性在后面的脚本中只看到这几个比较有用。
1.SciTE Script Editor 进行编写脚本的。其中(打开、#32770、D:\username.txt等文件需要自己修改的,其他不用动。)
ControlFocus("打开","","Edit1")
;识别windows窗口
WinWait("[CLASS:#32770]","",10)
;窗口等待十秒
ControlSetText("打开", "", "Edit1", "D:\username.txt")
;想输入框中输入需要上传的地址
Sleep(2000)
ControlClick("打开", "","Button1");
;点击[打开】按钮
编写完成后,保存为au3
格式。
2.完成后使用Compile Script to .exe (x86)
这个软件把au3
文件转化成exe格式文件
3.使用os.system(ttee.exe)
执行上传文件命令。执行该命令之前需要打开选择文件弹框,并且只能上传D:\username.txt
这个文件,局限性比较高。
4.所以需要优化,代码修改如下:
ControlFocus("打开","","Edit1")
;识别windows窗口,焦点
WinWait("[CLASS:#32770]","",5)
;等待窗口出现,最多等待五秒
;判断是否有参数
IF $CmdLine[0] > 0 Then ;有参数
$file = $CmdLine[1]
EndIf
ControlSetText("打开","","Edit1",$file)
Sleep(2000)
;等待信息输入完成
ControlClick("打开", "","Button1");
;点击打开按钮,进行文件上传
5.重复上述2、3 步骤
此时启动命令需要为exe文件和需要上传的文件路径os.system(ttee.exe D:\username.txt)
,注意中间的空格。这样就可以自定义上传某些文件了。
6.因为项目遇到的上传文件的弹窗框都是统一的,暂时不研究其他类型的选择文件的弹出框了。后面遇到了继续补充优化。