Robotframework 使用Selenium2Library时支持jQuery的简便方法

使用Selenium2Library 1.4.0,在官方的介绍里locating strategy里是支持jQuery的,但是在实际使用的时候,如果待测网页本身没有引用jQuery或者$已经被define过了就无法使用jQuery作为locating strategy,这个对于重度依赖jQuery的测试是件麻烦的事情。

 

在没有找到更好的办法之前,先用土办法对付一下,首先想到的就是利用 Execute Javascript 命令。

var jQ = window.document.createElement('script');
jQ.src='//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js';
window.document.body.appendChild(jQ);

在google的首页测试一下~ google首页的$并非属于jQuery,所以$('input[name=btnI]')[0] 这样的代码是不起作用的。

那么添加了对jQuery的引用之后感觉应该没问题了,于是在test case中加入以下测试代码:

Click Element 	dom=$('input[name=btnI]')[0]

期待结果是doodle页面被打开,也就是‘手气不错’那个按钮。可惜的是,依然fail了,错误提示 "$ is not defined"

这不科学。。。正在一筹莫展的时候,突然想起来这个外部文件加载是需要时间地。。。。

于是加上了一个Sleep再试试。。。

Sleep 	5

啊哈! doodle页面就呈现在眼前啦! 

完整测试代码如下:

*** Settings ***
Library 	OperatingSystem
Library     Selenium2Library
Library 	String

*** Test Cases ***
OPEN-Doodle-PAGE
	
        Open Browser  	http://www.google.com 	Chrome
	
	Execute Javascript 	a = window.document.createElement('script');a.src='//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js';window.document.body.appendChild(a);

	Sleep 	2
	
	Click Element 	dom=$('input[name=btnI]')[0] 

  

 

 

posted @ 2013-11-25 21:59  Austin.z  阅读(1158)  评论(0编辑  收藏  举报