資源描述:
《Python 操作IE的彈出窗口.doc》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、Python操作IE的彈出窗口最近和朋友在群里討論Selenium中,源碼中Pyhon關閉IE的彈出窗口失效,后來小編給了個建議是先把焦點設置給一個隱藏的層,然后發(fā)送回車的方法去實現它。感覺頗為無奈,同時也發(fā)現在PAM30中也是沒有實現處理彈出窗口的問題,為此今天在PAM30的基礎上新增了下面幾個方法:getmsgbox、getmsgboxtext、getmsgboxtitle、closemsgbox、clickmsgboxbutton等等。主要關鍵點在于getmsgbox方法的實現。defgetmsgb
2、ox(self,filter=None):"""Getthespecified?Popup?messagebox???????????parameters:??????????????????[filter]??-Onlyreturnelementsthatmatchthisfilterinformat??????????????????????(title=MicrosoftInternetExplorer;text=Areyousuretoclosethewindow;index:=0)???????
3、???????????????Thefiltervaluetomatch.?RegularExpressions??????????????????????canbeusedbystartingthevalwithan!?"title=!Google;text=!baidu"??????????????????????#(Addbyluchenzhi@March30,2010)???????????returns:???????????????apopupmessageboxhwnd???????"""?
4、??????MsgboxHwnd=0???????MatchTime?=0???????MatchIndex=0???????try:???????????foriinrange(0,100):???????????????MsgboxHwnd=win32gui.FindWindowEx(0,MsgboxHwnd,"#32770",None)???????????????ifMsgboxHwnd==0:???????????????????break???????????????ifwin32gui.Ge
5、tParent(MsgboxHwnd)==self._ie.Hwnd:???????????????????iffilter:???????????????????????valText=None???????????????????????filters=filter.split(";")?????????????????????????match=False???????????????????????forfinfilters[:]:?????????????????????????????????
6、?atts=f.split("=")???????????????????????????ifatts[0].lower()=="title":???????????????????????????????valText=win32gui.GetWindowText(MsgboxHwnd)???????????????????????????ifatts[0].lower()=="text":???????????????????????????????FirstStaticHwnd=win32gui.F
7、indWindowEx(MsgboxHwnd,0,"Static",None)???????????????????????????????ifwin32gui.GetWindowText(FirstStaticHwnd):???????????????????????????????????valText=win32gui.GetWindowText(FirstStaticHwnd)???????????????????????????????else:?????????????????????????
8、??????????valText=win32gui.GetWindowText(win32gui.FindWindowEx(MsgboxHwnd,FirstStaticHwnd,"Static",None))???????????????????????????ifatts[0].lower()=="index":???????????????????????????????MatchIndex=int(atts[1])??