我試圖自動化我們的一些流程的按鈕的網頁,一個包括登錄到外部網頁,點擊一個鏈接,擴大細節,然後抓住顯示所有細節。屏幕抓取含有AJAX
我已經得到了處理登錄,並能抓住所有的細節一旦被擴大。
問題在於點擊鏈接。該鏈接被定義如下圖所示(我已刪除什麼Submit
方法是確實的代碼很長,大概不相干顯然img
是佔位符只是作爲一個例子。):
<a id="form:SummarySubView:closedToggleControl" onclick="A4J.AJAX.Submit(...); return false;" href="#">
<img ... />
</a>
下面我用這個數據:
void browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
WebBrowser browser = (WebBrowser)sender;
HtmlElement expandDetails = browser.Document.GetElementById("form:SummarySubView:closedToggleControl");
//When open ID for element is "form:SummarySubView:openToggleControl"
if(expandDetails == null) //If already expanded
{
//Stuff
}
else
{
expandDetails.InvokeMember("click"); //Click on element to run AJAX
}
}
在運行expandDetails.InvokeMember("click");
browser_DocumentCompleted
被再次稱爲預期,但該文件是像以前一樣和expandDetails
與「封閉」 ID再次發現。這意味着我所查找的細節從不顯示。
如何獲得訪問文檔後的AJAX腳本可以正常運行?
添加Timer
推遲檢查文檔似乎並沒有工作過。
太棒了!我很高興你能把它工作。 –