Selenium测试ajax时waitForXXX的应用
Selenium http://seleniumhq.org/ 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这个选择项出来后继续下去。