我试图自动化我们的一些流程的按钮的网页,一个包括登录到外部网页,点击一个链接,扩大细节,然后抓住显示所有细节。屏幕抓取含有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
推迟检查文档似乎并没有工作过。
太棒了!我很高兴你能把它工作。 –