0

Python を使用して Internet Explorer と Web サイトとのやり取りを自動化しようとしています。これを行うためにIECライブラリを使用しています。

Web サイトは、ドロップダウン メニューからユーザー名が選択されるたびにアクションをトリガーするように設定されています。html コード スニペットは次のとおりです。

<select name="ClientID" tabIndex="1001" title="Select a client" class="client-select focus-default need-focus-object valid" style="width: auto;" onchange="localChangeClient()">
  <option value="0">
  <option value="2629049">

プログラムでドロップダウン リストにユーザー名を設定することはできますが、「onchange」イベントはトリガーされません。AJAXリクエストを探して直接トリガーする必要があることを示す他の参考文献(以下のリンク)を読みましたが、これを行う方法がわかりません。

  1. Python を使用してリモート Web サイトで Javascript イベントをトリガーする
  2. ドロップダウン リスト showld の変更で php 関数を呼び出す

私は、「onchange」が localChangeClient() という関数の呼び出しをトリガーすることを収集します。その関数を Python IEC から直接呼び出す/トリガーするにはどうすればよいですか?

私がリンクした例から、その localChangeClient 関数内で AJAX リクエストが行われるようです - そうですか? 実際の関数の詳細を確認できない場合、呼び出す AJAX 要求が何であるかを知るにはどうすればよいですか?

EDIT:以下は、継続的な取り組み/開発について説明しています。AJAX URLを直接呼び出す方法を知る必要があると思います

だから私はAJAXリクエストについてもっと読んでいました。Firebug (コンソール ウィンドウ) を使用して、onchange イベントで呼び出される特定の AJAX URL を教えてくれることがわかりました。ドロップダウン メニューを変更すると、Firebug は次のように言いました (わかりやすくするために省略しています)。

POST https://example.com/MyBasket/MyBasket.asp?update=Update%20Basket&ClientID=2629049,0&SDT=417.577989&SCheck=49913&Checkout=&ClientID=2629049&ClientID=0&CurrentPageUrl=&FullPage=false&MyBasketPage=1&OnClickScheduleCheckboxName=&OverlayRequest=true&TransactionStarted=0&ajax=true&cbxRegQuantity=1&cbxRegQuantity=1&update=no

だから私は正しい軌道に乗っていると思います。しかし、Python からその URL をトリガーする方法がわかりません。単純に「ie.Navigate(url)」だと、うまくいかないようです。フォーマットされていないウィンドウが表示され、ドロップダウン メニューがまだ選択されていません。

マイクロソフトのサポート サイト ( http://support.microsoft.com/kb/167658 ) を確認したところ、リクエスト データをバイトとしてエンコードする方法について説明されていましたが、それがここに当てはまるかどうかはわかりませんでした。

「AJAXリクエストを直接実行する」方法について誰かが詳細を提供していただければ幸いです

4

1 に答える 1