<[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > Thanks for the response again. The solution is pretty close but not yet > complete > This is what I observed. > a) I tried to use the delay mechanism as suggested below > ie. > ie.Navigate('www.google.com') > while ie.ReadyState !- 4 > time.sleep(0.5) > > d=win32com.client.DispatchWithEvents(ie.Document, Doc_Events) > > IE *fails* to load the webpage
Thought this was quite curious so tried it myself (on Python 2.3 Win2k machine). Put in some timing conditions and the problem is not that it fails to load, but that it takes really long (min time during tests = 60 secs , maximum time 580 secs). Tried using just WithEvents, same problem. The problem seems to lie with the call to ie.ReadyState while trapping events. 2 things lead me to believe this... 1) Interrupting the Python code after the browser window opens, results in the window finishing and loading the URL immediately with no problems. 2) Running the code with just Dispatch (no events) and it works fine (< 1 sec). All I can think is that each call to ie.ReadyState triggers some internal event which hogs resources to process. It seems like the problem is with IE Events only... so a possible workaround (if all you need is the Doc events) is the following: ------------------------- import win32com.client class Doc_Events: def Ononactivate(self): print 'onactivate:', doc.location.href def Ononclick(self): print 'onclick fired.' def Ononreadystatechange(self): print 'onreadystatechange:', doc.readyState ie = win32com.client.Dispatch("InternetExplorer.Application") ie.Visible = 1 ie.Navigate('http://www.google.com') while ie.ReadyState != 4: time.sleep(1) doc = ie.Document doc_events = win32com.client.WithEvents(doc, Doc_Events) # OR can use following: # doc = win32com.client.DispatchWithEvents(ie.Document, Doc_Events) while ie.ReadyState != 4 and doc.readyState != "complete": # readystate is case sensitive and differs for ie (R) and doc (r) # ie.ReadyState: 0=uninitialised; 1=loading; 2=loaded; # 3=interactive; 4=complete time.sleep(1) ------------------------- HTH, -- http://mail.python.org/mailman/listinfo/python-list