Ajax技术是实现页面元素动态刷新,而不需要刷新整个页面。
对于Ajax元素使用Selenium的waitForPageToLoad命令不起作用的,因为页面并不会真正加载以便刷新Ajax元素。暂停测试执行并等待一段时间也是不行的,因为Web元素可能出现得更晚,从而错误地导致一个测试失败。
以下一个更好的办法是等待固定的周期后,接着检查页面元素是否被找到。
考虑一个这样的页面,页面有一个链接(link=AjaxLink),单击页面上的一个按钮(不刷新页面)。使用for循环,Selenium就可以处理。
代码如下:
For(int second = 0; ; second++){
If(second >= 60)
Break;
Try{
If(selenium.isElementPresent(“link=ajaxLink”))
Break;
}catch(Exception e){
}
Thread.sleep(1000);
}