Opera 8、9、10 Windows、Linux、 Mac
Google Chrome Windows、Linux、 Mac
Selenium RC Firefox 2、3、3.x 启动浏览器,执行测试用例 Windows、Linux、 Mac
IE 6、7、8 Windows
Safari 2、3、4 Windows、Mac
Opera 8、9、10 Windows、Linux、 Mac
Google Chrome Windows、Linux、 Mac
下面介绍Selenium的几种技术:
2.1.3 同源策略
同源策略(Same Origin Policy)[38]是很多浏览器端编程语言中一个重要的安全概念。同源策略中允许来自同一个站点的访问源访问该站点其他页面中的方法和数据,若访问源来自不同的站点,将禁止其访问该站点页面中的方法和数据。实际运用中,用主机<Host>、协议<Protocol>和端口号<Port>表示一个访问源,当两个页面具有相同的主机号、协议以及端口号,认为两页面同源[39]。
所有的浏览器都采用了同源策略来确保站点内容不被来自不同站点的脚本执行。Selenium Core采用JavaScript脚本语言实现,也受到同源策略的限制。为了能在同源策略下正常工作,Selenium Core必须由与被测应用程序(AUT,Application Under Test)相同的源来代替。Selenium RC通过Selenium Server的代理<Proxy>机制伪造一个“假冒”的站点,浏览器认为它是运行在AUT站点上的同源页面,从而绕过同源策略使Selenium Core能够在浏览器中正常执行。
2.1.4定位技术
在Selenese命令中,每个操作都具有一个或多个操作对象。这些对象用来标识Web内容页面上的具体元素。元素定位操作的具体格式由定位类型locatorType和对应的目标位置locator组成,即locatorType=locator. Selenese中提供多种不同的定位技术来标识页面元素,包括Identifer定位、ID定位、Name定位、DOM元素定位和XPath定位等。下文将以登录功能的HTML页面为例,分别对几种定位技术进行介绍。其页面内容如图2.12所示:
图2.12 登录功能HTML页面
1、Identifier定位
Identifier定位方法是一种最普遍的界面元素定位技术,它自动按元素的id属性、name属性进行自动匹配。使用这用定位技术时,指定其定位类型locatorType为identifier,并为其指定一个id或name属性的具体值,系统首先按照元素的id属性值进行比较,若没有符合的元素,则继续按照元素的name属性值进行比较,直到找到第一个与指定元素相符的元素为止,若匹配不成功,则定位失败,找不到指定的元素。例如,图3.2指定的HTML页面中,既有id属性,又有name属性的标签,分别给出图中HTML文件中第三到第七行元素的Identifier定位方式,如表2.3所示:
表2.3 Identifier定位实例
行号 定位元素 Identifier定位方式 匹配类型
3 form identifier=loginForm 按id属性匹配
4 input identifier=username 按name属性匹配
5 input identifier=password 按name属性匹配
6 input identifier=continue 按name属性匹配
6 input continue 按name属性匹配
Identifier定位技术是Selenium测试工具中默认采用的定位方式,在具体测试中,locatorType类型可以不明确指定,表格第三列定位方式列中,“identifier=”可以省略,因此,表中两个continue值的定位方式等价,结果均指向第751行的input元素。 基于FitNium的Web关键字驱动的测试(6):http://www.751com.cn/jisuanji/lunwen_8907.html