मैं आईई के डीओएम को एक अलग धागे से देखने की कोशिश कर रहा हूं जो आईई भेजता है, और कुछ गुणों के लिए मुझे "ऐसा इंटरफ़ेस समर्थित नहीं है" त्रुटि मिल रही है।पायथन, कॉम और मल्टीथ्रेडिंग समस्या
import threading, time
import pythoncom
from win32com.client import Dispatch, gencache
gencache.EnsureModule('{3050F1C5-98B5-11CF-BB82-00AA00BDCE0B}', 0, 4, 0) # MSHTML
def main():
pythoncom.CoInitializeEx(0)
ie = Dispatch('InternetExplorer.Application')
ie.Visible = True
ie.Navigate('http://www.Rhodia-ecommerce.com/')
while ie.Busy:
time.sleep(1)
def printframes():
pythoncom.CoInitializeEx(0)
document = ie.Document
frames = document.getElementsByTagName(u'frame')
for frame in frames:
obj = frame.contentWindow
thr = threading.Thread(target=printframes)
thr.start()
thr.join()
if __name__ == '__main__':
thr = threading.Thread(target=main)
thr.start()
thr.join()
सब कुछ frame.contentWindow
जब तक ठीक है: मैं इस स्क्रिप्ट के लिए समस्या को कम करने में कामयाब रहे। फिर बम:
Exception in thread Thread-2:
Traceback (most recent call last):
File "C:\python22\lib\threading.py", line 414, in __bootstrap
self.run()
File "C:\python22\lib\threading.py", line 402, in run
apply(self.__target, self.__args, self.__kwargs)
File "testie.py", line 42, in printframes
obj = frame.contentWindow
File "C:\python22\lib\site-packages\win32com\client\__init__.py", line 455, in __getattr__
return self._ApplyTypes_(*args)
File "C:\python22\lib\site-packages\win32com\client\__init__.py", line 446, in _ApplyTypes_
return self._get_good_object_(
com_error: (-2147467262, 'No such interface supported', None, None)
कोई संकेत?
आपके प्रश्न के लिए ऑर्थोगोनल: पायथन 2.7 पर अपडेट करें; कोशिश करें [सेलेनियम] (http://selenium.googlecode.com/svn/trunk/docs/api/py/index.html) – jfs
अभी कोई विकल्प नहीं है; मैं एक व्यावसायिक संदर्भ में हूं और सेलेनियम क्या करता है उससे हम बहुत कुछ करते हैं। हम यद्यपि पाइथन को अपग्रेड करने के रास्ते पर हैं :) हमने मुफ्त थ्रेडिंग के बजाय अपार्टमेंट का उपयोग करके और हाथ से मार्शलिंग सामान के बजाय एक कामकाज पाया लेकिन मैं अभी भी उत्सुक हूं। – fraca7