質問: ie.Document.getElementById() 2.引数を2つ渡す。 予想通りでしたが、同じ箇所でほぼ同じエラーが発生します。 相違点は but 2 were given が but 3 were given となる点です。 3.引数で渡す id を変更する。 上記ソースコードに記載の gsr 以外の、 google.com に存在する id を渡して実行してみましたが、 同じ箇所で同じエラーが発生します。 ちなみに、エラー箇所直前の document.all が正常に取得できているので、 存在するエレメントの id 一覧は取得できます。 4.pywin32 のバージョンを確認する。 getElementsById の定義で引数に self を設定しなければ上記エラーが発生するはずなので、 import されているモジュール自体に問題がある可能性を考え、 現在のバージョンの確認と、 pip install pywin32 --upgrade を実行しました。 結果、現在のバージョンは最新と思われる 228 であり、 --upgrade の後も228 のままでした。 5.getElementById を他のメソッドに変更する。 取り敢えず getElement と名の付くメソッドを思いつく限り実行しましたが、 すべて同様の箇所で同様のエラーが発生します。 色々なサイトを拝見しましたが、エラーの原因が特定できません。 どうかご助力をお願いいたします。
回答: stack overflowにそのものズバリの回答がありました。 * Interesting “getElementById() takes exactly 1 argument (2 given)”, sometimes it occurs. Can someone explain it? `getElementById`はwin32comによって動的に作られるそうです(COMらしい動作ですね)。回避方法は「正常にに動作するウェブサイトに一旦接続し、その後正常に動作しないウェブサイトに接続する」事だそうです。