我正在嘗試使用Python自動化Internet Explorer與網站的交互。我正在使用IEC庫來執行此操作。Python如何調用AJAX URL(以觸發網站選擇菜單的onchange事件)
無論何時從下拉菜單中選擇用戶名,網站都會設置爲觸發操作。在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請求並直接觸發它,但我不知道如何執行此操作。
- Trigger Javascript event on remote website with Python
- on Change of dropdown list showld call the php function
我推測, '平變化' 觸發呼叫到被叫localChangeClient()的函數。我如何直接從Python IEC調用/觸發該函數?
從我鏈接的例子來看,似乎AJAX請求將在該localChangeClient函數內進行 - 是嗎?我怎麼知道AJAX請求調用的是什麼,因爲我看不到實際的功能細節?
編輯:下面描述繼續努力/發展。我想我只需要知道如何直接調用AJAX URL
所以我正在閱讀更多關於AJAX請求的內容。我發現我可以使用Firebug(控制檯窗口)告訴我爲onchange事件調用的特定AJAX url。螢火告訴我下面的(剪斷,爲清楚起見),當我改變了下拉菜單:
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觸發該網址。如果我只是「ie.Navigate(url)」,它似乎不起作用。它帶我到一個非格式化的窗口,下拉菜單仍未被選中。
我檢查了一個Microsoft支持網站(http://support.microsoft.com/kb/167658),該網站討論了將請求數據編碼爲字節等,但我不清楚這是否適用於此。
我真的很感激,如果有人可以提供有關如何「做直接的AJAX請求」