資源描述:
《Python 操作IE的彈出窗口.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、Python操作IE的彈出窗口最近和朋友在群里討論Selenium中,源碼中Pyhon關(guān)閉IE的彈出窗口失效,后來(lái)小編給了個(gè)建議是先把焦點(diǎn)設(shè)置給一個(gè)隱藏的層,然后發(fā)送回車的方法去實(shí)現(xiàn)它。感覺(jué)頗為無(wú)奈,同時(shí)也發(fā)現(xiàn)在PAM30中也是沒(méi)有實(shí)現(xiàn)處理彈出窗口的問(wèn)題,為此今天在PAM30的基礎(chǔ)上新增了下面幾個(gè)方法:getmsgbox、getmsgboxtext、getmsgboxtitle、closemsgbox、clickmsgboxbutton等等。主要關(guān)鍵點(diǎn)在于getmsgbox方法的實(shí)現(xiàn)。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])??