项目中须用到AutoIT操作网页上传文件。以往我做自动化测试工作中都是 Selenium + autoIT的组合方式,处理了很多次这种文件上传。我原本想这次项目组要求纯AutoIT操作上传也是AutoIT的拿手好戏,可谁知我写下下面这些代码后:
$oIE = _IEAttach("upload_file")
$file = _IEGetObjByName($oIE, "file")
$file.click()
Local $title = "选择要加载的文件"
$wins = WinList($title)
ConsoleWrite("窗口数量:" &$wins[0][0])
If $wins[0][0] > 0 Then
$hwnd = $wins[1][1]
ConsoleWrite("jubin" & $hwnd)
WinActivate($hwnd)
ControlSetText($hwnd,"","Edit1","D:\RPAScript\conf.ini")
ControlClick($title,"","Button1")
EndIf
打开了文件上传对话框,但脚本也至此卡住了,不会往编辑框里输东西,也不做其他的操作,必须关闭当前对话框后,脚本才会结束,不然在任务栏里不能直接操作脚本退出。
后来我尝试将操作上传对话框的操作写到另一个脚本里,间接调用依然不行;再将脚本编译为exe在主脚本里调用依然不行。最后网上搜索资料,从