selenium操作win窗口


 

最近測試的項目中涉及到上傳文件的功能,自動化腳本中需要使用python win32模塊來操控,記錄下使用心得吧!

1.首先引入python win32gui模塊

import win32gui

2.安裝spyxx.exe,用於定位win窗口

准備工作做好了,開工吧

3.點擊類似“上傳”等按鈕后會彈出win窗口,那就先定位它吧,如下

 

定位代碼如下:

uploadwindowname = u'打開' #CHROME窗口名稱是打開
uploadwindow = win32gui.FindWindow('#32770', uploadwindowname)#定位“文件上傳 窗口
print uploadwindow 

最后輸出,如果輸出0說明定位失敗了

parent=win32gui.FindWindowEx(uploadwindow,None,'ComboBoxEx32',None)
Combobox_real=win32gui.FindWindowEx(parent,None,'ComboBox',None)
Edit_box=win32gui.FindWindowEx(Combobox_real,None,'Edit',None)

這段代碼是先定位到最上層的父窗口,再逐層定位到輸入框(chrome於FF有所不同,FF下可以直接定位)

 

win32gui.SetForegroundWindow(Edit_box)
time.sleep(1)
win32gui.SendMessage(Edit_box,win32con.WM_SETTEXT,None,r'C:\Users\gmsd12\Desktop\BLAT_blacklist.xls')
openbuttonname = u'打開(&O)'
time.sleep(1)
openbutton = win32gui.FindWindowEx(uploadwindow, None,"Button",openbuttonname)#定位“保存”按鈕
print openbutton
win32gui.PostMessage(openbutton, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, 0)
win32gui.PostMessage(openbutton, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON, 0)

這段代碼是把輸入框置頂,否則無法輸入,輸入文件路徑后,定位到打開按鈕,保存按鈕,最后回車鍵按下再松開。

至此完成了上傳文件時操作win窗口,其中FF下和Chrome下窗口名稱有所不同(當時還被折磨了好久才發現(⊙﹏⊙)),IE的暫時沒有試過。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM