2016-08-29 5 views
0

私はInternet Explorerの自動化を行います。 Internet Explorerを開き、login.live.comに移動し、電子メールテキストボックスに値を設定します。getElementById()は1つの引数(2が指定されています)を受け取ります

ここでは簡単なスクリプトです:

import win32com.client 
import time 

IE = win32com.client.DispatchEx("InternetExplorer.Application") 
IE.Visible = 1 
IE.Navigate('login.live.com') 

time.sleep(5) 

DOC = IE.document 
DOC.getElementById('i0116').value = 'test' 

最後の行は、常に次のTypeError例外を返します。私はそれが動作するInternet Explorerでコンソールを介して値を追加しようとすると

getElementById() takes exactly 1 argument (2 given)

が。

Btw。 getElementsByTagName()メソッドはエラーなしで機能します。

ありがとうございました!

+1

これが役に立ちます。 http://stackoverflow.com/questions/9816967/interesting-getelementbyid-takes-exactly-1-argument-2-given-sometimes-it – ravindar

+0

は以前と同じエラーが発生しました。しかし、ヒントのおかげで。 –

答えて

1

オーケーを使用する必要が示唆するように..私は、このための回避策を書いた:ブラウザの自動化のために

DOC = IE.Document 
inputs = DOC.documentElement.getElementsByTagName('input') 

for field in inputs: 
    if field.id == 'i0116': 
     email = field 
     break 
email.value = '[email protected]' 

私はSeleniumライブラリを使用することをお勧めします。

0

this答えは、あなたが

DOC.Body.getElementById('i0116').value = 'test' 
+0

私もこれを試しましたが、AttributeErrorを返します: AttributeError: .getElementById –

関連する問題