Selenium测试ajax时waitForXXX的应用

Filed Under (计算机相关) by 郑海山 on 2009-02-10

Selenium http://seleniumhq.org/ 是一个web应用自动化测试工具,带有可在firefox下运行的IDE,可录制脚本和运行脚本,可生成脚本成为c#,java,php等代码作为自动化测试使用。作为测试人员或者编程开发人员自行测试应用功能非常有用。但是,初学者通常都会在Selenium录制ajax应用时遇到一个小麻烦。

Selenium有click命令,也有clickAndWait命令,顾名思义第二个命令就是click后等待页面加载完毕,一般人会以为这个命令也可用在ajax里面,假设有个非常简单的应用,2个下拉框,SelectA,SelectB,选择了SelectA后选择SelectB内的信息,SelectB的内容随着SelectA的选择而变化,这个时候录制脚本时是默认使用click命令,但是重放脚本时会在这里停住,无法继续下去,因为SelectB需要一个服务器回调的过程,还没有要选择的内容,但是如果你下意识的加入AndWait后,会发现这里还是会停住直到timeout,为什么呢?因为实际上ajax的载入是不会触发整个page的载入的,所以AndWait在这里没用,你可以在这里加入pause,或者放慢整个脚本回放速度,但是这都不是最好的解决方法,最好是使用waitForXXX命令,比如这里再插入waitForSelectOptions命令,target为ID,value为pattern,比如*optiontext*等内容。这样子会自动等待SelectB直到optiontext这个选择项出来后继续下去。

Post a comment

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word

使用http://dog.xmu.edu.cn访问郑海山的blog

记住这个域名,你能想象我会在76岁那年还在写这个blog么?

联系我: 郑海山,在厦大BBS现在叫Haishion,以前是Dog。
eMail: haishanzheng AT sina DOT com
QQ: 2194037

==< 全部文章 >==

tag cloud