使用PAMIE的TypeError

时间:2012-07-20 13:27:36

标签: python pywin32 pamie

我在PAMIE上遇到一个带有非常简单脚本的TypeError,我不知道我能做什么。我找到了一个答案,表明库pywin32可能没有为这个特定方法设置self参数(getElementsByTagName),但我不确定,因为我不知道知道在哪里可以找到它的定义。

from  PAM30 import PAMIE

ie = PAMIE()
ie.navigate('google.com')
ie.getButtons()
ie.quit()
print 'done'

错误是:

Traceback (most recent call last):
  File "c:\pamie1.py", line 1, in <module>
    from  PAM30 import PAMIE
  File "C:\Python27\Lib\site-packages\PAM30.py", line 678, in getButtons
    return self.getElementsList("input", filter)
  File "C:\Python27\Lib\site-packages\PAM30.py", line 939, in getElementsList
    elements = self._ie.Document.getElementsByTagName(tag)
TypeError: getElementsByTagName() takes exactly 1 argument (2 given)

以下是PAM30

中的违规行
elements = self._ie.Document.getElementsByTagName(tag)

其中_ie_

self._ie = win32com.client.dynamic.Dispatch('InternetExplorer.Application')

我正在使用Windows 7x64和Python2.7 32位

3 个答案:

答案 0 :(得分:1)

sourceforge bug link

“解决方法”似乎启用了兼容性视图(Tools > Compatibility View settings > Display all websites in Compatibility View)。

这是IE的错误。

答案 1 :(得分:1)

解决方法 - 改变PAMIE30

elements = self._ie.Document.getElementsByTagName(tag)

elements = self._ie.Document.body.all.tags(tag)

这将无需使用兼容性视图即可使用!

答案 2 :(得分:0)

修改此行:

elements = self._ie.Document.getElementsByTagName(tag)

elements = self._ie.Document.Body.getElementsByTagName(tag)