借助autoit操作上傳下載對話框(參數化)
阿新 • • 發佈:2017-06-23
net htm 名稱 上傳 exe pla only cmd board
蟲師有一篇文章寫的不錯,鏈接如下:http://www.cnblogs.com/fnng/p/4188162.html
他的文章把upload.exe需要上傳的文件寫死了,下面的內容作為補充。
如果不想把上傳過程寫死,例如,想在程序中指定要上傳的文件,把文件路徑作為參數傳遞給upload.exe進行上傳,也是可以的,autoit可以使用參數化做到這一點,見下面的autoit腳本:
[plain] view plain copy
- ControlFocus("打開","","Edit1")
- WinWait("[CLASS:#32770]","",10)
- ControlSetText("打開","","Edit1",$CmdLine[1])
- Sleep(2000)
- ControlClick("打開","","Button1");
上面的代碼指定了打開的窗口名稱為“打開”,並且使用$CmdLine[1]來指定upload.exe需要的唯一參數。調用該upload.exe的python代碼如下:
[python] view plain copy
- browser.find_element_by_id("crop_logo").click() #首先需要使用webdriver點擊web頁面的控件,彈出上傳文件對話框後,這時,autoit腳本就可以尋找到上傳文件對話框,並進行autoit腳本中的預設動作。
- # upload.exe接收一個參數,就是要上傳的文件路徑,目前只支持上傳文件對話框是"打開"的windows窗口
- exe_path=base_dir+"\\resource\\upload.exe"
- file_path=base_dir+"\\resource\\img.png"
- cmd=exe_path+" "+file_path
- ps=subprocess.Popen(cmd)
- ps.wait()
註:調用upload.exe也可使用subprocess模塊,比os模塊跟更好用。
如下:
[python] view plain copy
- ps=subprocess.Popen(cmd)
- ps.wait()
了解了上傳的實現過程,那麽下載也是一樣的。
借助autoit操作上傳下載對話框(參數化)