如何在继续之前编写一个等待jQuery animate操作完成的Visual Studio WebAii Test?如何让WebAii测试等待jQuery动画完成?
目前我只是使用循环暂停5秒,但如果动画时间发生变化,这很容易中断。
我已经尝试了WebAii API中的一些等待方法,但他们都没有看到等待这种事情。我认为最接近的我来了Actions.WaitForElement(..)然而,被动画的元素已经在DOM中,所以这似乎不起作用。等待方法对我来说似乎也很模糊。
如何在继续之前编写一个等待jQuery animate操作完成的Visual Studio WebAii Test?如何让WebAii测试等待jQuery动画完成?
目前我只是使用循环暂停5秒,但如果动画时间发生变化,这很容易中断。
我已经尝试了WebAii API中的一些等待方法,但他们都没有看到等待这种事情。我认为最接近的我来了Actions.WaitForElement(..)然而,被动画的元素已经在DOM中,所以这似乎不起作用。等待方法对我来说似乎也很模糊。
你可以编辑JavaScript以添加一个回调函数到jQuery animate()调用吗?如果是这样,这将允许您放入一个钩子,您可以使用WebAii API更轻松地进行检测。例如,您可以在动画上添加一个(不可见)元素到DOM上,然后使用WaitForElement方法来检测该元素。有点kludge,但它会工作!
您可以测试动画元素的属性。即使元素总是存在,动画结束时,属性必须有一些变化。由于我不知道这会发生什么样的变化,因此我在下面给出一个通用示例。
该代码使用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);
我希望这会有所帮助。