我在我的应用程序中使用WebBrowser
。当我点击提交按钮时,一些javascript运行并通过使用ajax页面获得一些我想要保存的新contentes。但是,如果我这样做,它就不起作用了:
btn.InvokeMember("click"); // send the form and then runs AJAX
Thread.Sleep(1000 * 10); // it doesn't take so long... but about 1000
var d = browser.Document.GetElementsByTagName("p"); // p is null
但如果我通过按钮点击var d = browser.Document.GetElementsByTagName("p");
,即使我删除了p
null
不是Thread.Sleep(1000 * 10);
}
我不知道为什么。这不是因为p
HTML标记尚未加载,因为即使没有Thread.Sleep()
调用而点击按钮也会花费更少的时间,但我得到了HTML元素。
我希望这很清楚,但如果它没有告诉我,我会尝试澄清。
答案 0 :(得分:1)
尝试使用timer
代替sleep
并检查浏览器。 ReadyState == WebBrowserReadyState.Complete