停止更新,敏捷测试及TestOps解决体系,关注订阅号TestOps

selenium中的一个简单处理AJAX方法

上一篇 / 下一篇  2010-06-20 09:42:55 / 个人分类:自动化测试

&YL&N3J+J*K!?0最近在做selenium的一些演示中遇到了一些问题,网站登陆后的页面刷新是通过一个AJAX实现的,中间会有一个小窗口提示等待刷新,但selenium会出现无法读取下一个页面中内容,导致click登陆后的链接出现找不到对象的问题。51Testing软件测试网/jC$p"D^*Rk

51Testing软件测试网:T ~[tR9Zr_

一般解决这个问题我以前都用强行刷新一个页面的方式来解决。selenium.open来强制刷新需要点击的页面地址,来解决selenium.click无法访问的问题,ajax的刷新一般需要一点时间,那么能不能强行等待ajax的刷新呢?51Testing软件测试网&sf:z1jW;^7M c;? B8J

G$L$c"? lo*D0selenium自身没有函数做任何等待操作,所以这里需要依赖于开发语言

;t?.w{X5v051Testing软件测试网b5j I&T:rG%UI Qv

在c#下可以使用
$dQms\'l+w7V0System.Threading.Thread.Sleep(4000);51Testing软件测试网*g JcP yE-Jl0a9x;~
来让代码等待4秒,等待ajax刷新后再进行click操作。

|s*IZ:I Ii,E/q? o:h051Testing软件测试网`"b%S#|s"q

这里需要注意的是如果是在外网会因为服务器的处理或者网络延时导致ajax刷新的速度不确定,sleep的时间可能需要放长。不过一般自动化测试都是本地服务器,所以可以很精确的控制刷新时间。

a+U;^Q"Qf9D-v`s051Testing软件测试网,DHOoG

该方法在vs2010+selenium cr下测试成功。

K V"gL `Sy0

TAG:

云层专版 引用 删除 云层   /   2010-06-27 18:37:50
原帖由kaidong12于2010-06-24 17:07:06发表
Java driver 包里面有 pause ( waitTime )

谢谢补充
引用 删除 kaidong12   /   2010-06-24 17:07:06
Java driver 包里面有 pause ( waitTime )
引用 删除 jays999   /   2010-06-23 20:30:10
 

评分:0

我来说两句

Open Toolbar