2010-02-12 74 views
0

如何在继续之前编写一个等待jQuery animate操作完成的Visual Studio WebAii Test如何让WebAii测试等待jQuery动画完成?

目前我只是使用循环暂停5秒,但如果动画时间发生变化,这很容易中断。

我已经尝试了WebAii API中的一些等待方法,但他们都没有看到等待这种事情。我认为最接近的我来了Actions.WaitForElement(..)然而,被动画的元素已经在DOM中,所以这似乎不起作用。等待方法对我来说似乎也很模糊。

回答

0

你可以编辑JavaScript以添加一个回调函数到jQuery animate()调用吗?如果是这样,这将允许您放入一个钩子,您可以使用WebAii API更轻松地进行检测。例如,您可以在动画上添加一个(不可见)元素到DOM上,然后使用WaitForElement方法来检测该元素。有点kludge,但它会工作!

0

您可以测试动画元素的属性。即使元素总是存在,动画结束时,属性必须有一些变化。由于我不知道这会发生什么样的变化,因此我在下面给出一个通用示例。

该代码使用HtmlFindExpression与WaitForElement相结合。它应该等到检测到具有给定ID的元素(“ctl00_ContentPlaceHolder1_btnAccept_CD”)。

Manager mng = new Manager(false); 
mng.Start(); 
mng.LaunchNewBrowser(BrowserType.InternetExplorer); 
string url = "http://yoururl"; 
mng.ActiveBrowser.NavigateTo(url); 
mng.ActiveBrowser.WaitForElement(
    new HtmlFindExpression("id=ctl00_ContentPlaceHolder1_btnAccept_CD"), 10000); 

我希望这会有所帮助。