|
该帖已经被评为良好帖
|
|
|---|---|
| 作者 | 正文 |
|
时间:2007-07-31 关键字: selenium
Selenium 是 thoughtworks公司的一个集成测试的强大工具。最近参与了一个系统移植的项目,正好用到这个工具, 把一些使用心得分享给大家,希望大家能多多使用这样的强大的,免费的工具,来保证我们的质量。 Selenium 的文档现存的不少,不过都太简单了。使用Selenium的时候,我更多的是直接去看API文档,好在API不错, 一个一个看,就能找到所需要的 :-) 官方网站:http://www.openqa.org/selenium/ 好,下面进入正题! 一、Selenium 的版本 Selenium 现在存在2个版本,一个叫 selenium-core, 一个叫selenium-rc 。 selenium-core 是使用HTML的方式来编写测试脚本,你也可以使用 Selenium-IDE来录制脚本,但是目前Selenium-IDE Selenium-RC 是 selenium-remote control 缩写,是使用具体的语言来编写测试类。 selenium-rc 支持的语言非常多,这里我们着重关注java的方式。这里讲的也主要是 selenium-rc,因为个人还是喜欢这种 二、一些准备工作 1、当然是下载 selenium 了,到 http://www.openqa.org/selenium/ 下载就可以了,记得选择selenium-rc 的版本。 2、学习一下 xpath 的知识。有个教程:http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html 3、安装 jdk1.5 三、selenium-rc 一些使用方法 在 selenium-remote-control-0.9.0\server 目录里,我们运行 java -jar selenium-server.jar 当然,启动的时候有许多参数,这些用法可以在网站里看看教程,不过不加参数也已经足够了。 selenium server 启动完毕了,那么我们就可以开始编写测试类了! 我们先有个概念,selenium 是模仿浏览器的行为的,当你运行测试类的时候,你就会发现selenium 会打开一个 浏览器,然后浏览器执行你的操作。 好吧,首先生成我们的测试类: java 代码
代码十分简单,作用就是初始化一个 Selenium 对象。其中: 下面我就要讲讲怎么使用selenium 这个对象来进行测试。 1、测试文本输入框 假设页面上有一个文本输入框,我们要测试的内容是 在其中输入一些内容,然后点击一个按钮,看看页面的是否跳转
上面的代码是这个意思: 2、测试下拉框 java 代码
可以看到,我们可以使用 select 方法来确定选择下拉框中的哪个选项。 3、测试check box java 代码
我们可以使用 check 方法来确定选择哪个radio button 4、得到文本框里的文字 java 代码
getValue 方法就是得到文本框里的数值,可不是 getText 方法,用错了可就郁闷了。 5、判断页面是否存在一个元素 java 代码
一般这个是用来测试当删除一些数据后,页面上有些东西就不会显示的情况。 6、判断下拉框里选择了哪个选项 java 代码
这个可以用来判断下拉框显示的选项是否是期望的选项。 7、如果有 alert 弹出对话框怎么办? 这个问题弄了挺长时间,可以这样来关闭弹出的对跨框: java 代码
其实当调用 selenium.getAlert() 时,就会关闭 alert 弹出的对话框。 在测试的时候,有的人会显示许多alert 来查看运行时的数据,那么我们可以用下面的方式来关闭那些 alert: java 代码
8、如何测试一些错误消息的显示? java 代码
切记: getBodyText 返回的时浏览器页面上的文字,不回包含html 代码的,如果要显示html 代码,用下面这个: java 代码
以上就是最常用的几个方法了,例如 click, type, getValue 等等。 java 代码
四、其他 selenium 还有更多的用法,例如弹出页面等等。当面对没见过的测试要求时,我最笨的方法就是按照api文档一个一个找, 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
| 返回顶楼 | |
|
时间:2007-08-08
selenium只支持jdk1.5吗,有没有支付jdk1.4的版本的呢。
|
|
| 返回顶楼 | |
|
时间:2007-08-08
没有,官方网站上写得很清楚
|
|
| 返回顶楼 | |
|
时间:2007-08-09
可以用一个工具jar转成1.4的,命令如下:
java -jar retrotranslator-transformer-1.2.1.jar -srcjar selenium-server.jar -destjar selenium-server.jar_for_1.4.jar 具体的jar包自己google一下吧。 这样转完之后就可以在1.4下跑了,不过以后都要带着那个转的工具包了,算是副作用吧 |
|
| 返回顶楼 | |
|
时间:2007-08-09
请问:如果想通过Selenium得到一个图片,比如 Image 或 BufferedImage 应该怎么做呢?
我并没有在API找到合适的方法。是不是需要修改javascrip (Format?),或者引入扩展文件呢 (user_extensions.js?)? |
|
| 返回顶楼 | |
|
时间:2007-08-10
你是要得到一个图片的url 还是别的?
|
|
| 返回顶楼 | |
|
时间:2007-08-10
由于那个网页显示的图片并不固定,每次刷新页面都会变化,只得到url然后再用Toolkit.getImage(url)得到BufferedImage的方法不适用。
我希望得到当前显示jpg图片文件。比如在 selenium.open("/"); 这个语句之后,执行另外一个方法得到那个图片。 希望我表述的还算清楚~ |
|
| 返回顶楼 | |
|
时间:2007-08-10
能举个例子描述一下吗?我没看懂你说的....
|
|
| 返回顶楼 | |
|
时间:2007-08-10
大概是这样的:
我要测试的网页上会显示一个随机生成的图片,url为http://www.abc.cn/ranimg.jsp?s=8173,其中8173为一个随机数,每次刷新网页都会变化,而显示的图片也不相同。实际上,就像是登陆某些网站之前,网页显示的验证码图片。 我希望在测试网页上其他功能的同时将这个图片保存下来,以便在测试结束后查看。 |
|
| 返回顶楼 | |
|
时间:2007-08-11
hooty 你好,很抱歉才回复你:)
这个问题我以前没遇到过,我也只能给你一些可能的方法. 1,最笨的方法 使用 selenium.getHtmlSource() 得到html代码, 然后分析你需要的url. 2,使用 selenium.getAttribute 方法. 我想你的图片应该是 <img src="xxx"/> 的形式吧? 你可以加个id <img src="xxx" id="yyy"/> 其实在测试中也发现,如果有个id,会方便很多. 3. 你先使用 selenium.click() 方法点那个图片,然后 让图片显示在一个页面中,然后用 selenium.getLocation() 得到页面的url. 我的理解是你现在想得到图片的随机url,并且下载那个图片吧? 上面的方法只是我看API想到的方式,没有测试过;-) |
|
| 返回顶楼 | |




