开发者

In WatiN how to wait until postback is complete

in WatiN how can I wait until postback is complete.

For example:

// Postback res开发者_开发技巧ponse modifies update panel elsewhere on page
browser.Text("id").TypeText("asd"); 

// WatiN doesn't wait until postback is completed (what code should I replace it with?).
browser.WaitUntilComplete();


You could check if IE is busy rather than complete.

while (((SHDocVw.InternetExplorerClass)(_ie.InternetExplorer)).Busy)
        {
            System.Threading.Thread.Sleep(2000);
        }


WaitUntilComplete doesn't recognize ajax calls. See this article (search on WaitForAsyncPostBackToComplete) on how to inject some code to make that work as well: WatiN, Ajax and some Extension Methods

HTH, Jeroen


As mentioned WaitForComplete is fine for a loading page, but doesn't work for Ajax calls.

Here's a very simple solution that works well for my situation where I expect a specific element to appear... perhaps... eventually. It simply loops until elementID exists on a page, or times out after 20 seconds:

DateTime _startWait = DateTime.Now;
while (_startWait.AddMilliseconds(20000) > DateTime.Now && !WatiNbrowser.Elements.Exists(elementID))
                    {
                        System.Threading.Thread.Sleep(200);
                        Application.DoEvents();
                    }
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜