Win 32 - VB, Ruby, Perl VS Python with fireEvent

calfdog at yahoo.com calfdog at yahoo.com
Wed Mar 23 20:49:17 EST 2005


Hello,

I was wondering if anyone could tell me why fireEvent works in every
language but Python with the latest Internet Explorer?

I tried this page that has two listboxes if you select  Listbox A the
Listbox B should change.

The code status:
Works fine with Python 2.3, 2.4 in Windows XPsp1
DOES not work  Python 2.3, 2.4 XP Sp2 or the lastest IE
Works fine with "RUBY" on Win 2000, XP sp1 and XP sp2
Work fine with PERL on on Win 2000, XP sp1 and XP sp2

Luckily I know both Ruby, VB and Perl so I could prove there was a
problem.

Here is the example code in both Python and Ruby:

Python:
from win32com.client import DispatchEx
import time




def wait(ie):
    while ie.Busy: time.sleep(0.1)

    doc = ie.Document
    while doc.ReadyState != 'complete': time.sleep(0.1)

ie = DispatchEx('InternetExplorer.Application')
ie.Visible = 1
ie.Navigate( 'https://enroll.ou.edu/' )
wait(ie)
ie.Document.forms[0].campus.value='200'
ie.Document.forms[0].campus.fireevent('onchange')

Results:
Traceback (most recent call last):
  File
"C:\Python23\lib\site-packages\Pythonwin\pywin\framework\scriptutils.py",
line 310, in RunScript
    exec codeObject in __main__.__dict__
  File "C:\automation\poScript1.py", line 18, in ?
    ie.Document.forms[0].campus.fireevent('onchange')
  File "C:\Python23\lib\site-packages\win32com\client\dynamic.py", line
154, in __call__
    return
self._get_good_object_(self._oleobj_.Invoke(*allArgs),self._olerepr_.defaultDispatchName,None)
com_error: (-2147024891, 'Access is denied.', None, None)





Ruby:
# OU Registration & Enrollment Online
require 'win32ole'
ie = WIN32OLE.new('InternetExplorer.Application')
ie.visible = true
ie.gohome
ie.navigate('https://enroll.ou.edu/')
while ie.busy
end

READYSTATE_COMPLETE = 4
until
  ie.readyState == READYSTATE_COMPLETE
end
form = ie.document.forms(0)
form.campus.value = '200'
form.campus.fireevent('onchange')

Results: fireEvent was successful and the second listbox was changed




More information about the Python-list mailing list