如何让WebAii测试等待jQuery动画完成?

时间:2010-02-12 05:21:52

标签: jquery visual-studio automated-tests testing webaii

如何在继续之前编写等待jQuery Visual Studio WebAii Test操作完成的animate

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

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

2 个答案:

答案 0 :(得分:0)

你能编辑javascript以便为jQuery animate()调用添加一个回调函数吗?如果是这样,这将允许您放入一个可以使用WebAii API更容易检测到的钩子。例如,你可以让动画上的回调向DOM添加一个(不可见的)元素,然后使用WaitForElement方法来检测它。有点像kludge但它会起作用!

答案 1 :(得分: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);

我希望这会有所帮助。