初识Selenium(二)
---------------------------------------------------------------------------------------------------------
一、Selenium-RC 是 selenium-remote control 缩写,是使用具体的语言来编写测试类。
二、准备工作: 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 一些使用方法
1,解压selenium-rc压缩包
2,启动服务器
Selenium Server是用JAVA实现的,相应的库文件在HOME/server/selenium-server.jar。运行如下代码从命令行启动:
java 代码 : java -jar selunium-server.jar
四、编写测试用例
需要的JAR: selenium-java-client-driver.jar;junit
编写一个JUNIT的单元测试,要构建一个Selenium,包括如下步骤:
* 构建一个Selenium实例
* 启动Selenium实例
* 执行Selenium命令,并验证结果。
* 关闭Selenium实例
如下是一个示例,用来测试http://www.google.com/,查找selenium,期望结果中包含"OpenQA: Selenium"
1. package com.thoughtworks.selenium;
2.
3. import junit.framework.*;
4.
5. import org.openqa.selenium.server.*;
6.
7. public class GoogleTest extends TestCase
8. {
9. private Selenium selenium;
10.
11. public void setUp() throws Exception {
12. String url = "http://www.google.com";
13. selenium = new DefaultSelenium("localhost", SeleniumServer.getDefaultPort(), "*firefox", url);
14. selenium.start();
15. }
16.
17. protected void tearDown() throws Exception {
18. selenium.stop();
19. }
20.
21. public void testGoogleTestSearch() throws Throwable {
22. selenium.open("/intl/zh-CN/");
23. selenium.type("q", "selenium");
24. selenium.click("btnG");
25. selenium.waitForPageToLoad("30000");
26. assertEquals("selenium - Google 搜索", selenium.getTitle());
27.
28. }
29.
30. }
五、多环境测试
package test; import org.junit.Test; import junit.framework.TestCase; import com.thoughtworks.selenium.DefaultSelenium; @Test private void script(Selenium selenium) throws Exception { |
六、如何选取元素
selenium提供如下强大的定位元素的方法。
id=id |
1 通过ID,name选择元素 : 如 selenium.type("id=q","百度"); selenium.type("name=search","百度")
2 link= 根据链接文字来操作:如 selenium.click("link=个人资料");
3 根据XPath来选择元素 : XPath Checker
* xpath=//img[@alt='The image alt text'] |
4 dom选择
* dom=document.forms['myForm'].myDropdown |
5 css选择器
这个不常用,它可以支持css2, css3选择器
* css=a[href="#id3"] |
七、使用selenium 这个对象来进行测试
1 获取标 : assertEquals("Insert title here", selenium.getTitle());
2 判断页面是否存在一个user.email元素 :assertTrue(selenium.isElementPresent("xpath=//input[@name='user.email']"));
3 得到文本框里的文字: assertEquals(selenium.getValue("xpath=//input[@name='user.username']"),"xxxaas");
4 测试check box : assertTrue(selenium.isChecked("xpath=//input[(@name='user.sex')and(@value='男')]"));
5 点击提交按钮 : selenium.click("xpath=//input[@type='button']");
6 等待页面载入 : selenium.waitForPageToLoad("2000");
7 验证指定文本出现在提交给用户的页面上: assertTrue(selenium.isTextPresent("验证码输入有误,请核实后再输入"));
8 判断下拉框里选择了哪个选项 :assertEquals(selenium.getSelectedIndex("xpath=//SELECT[@name='HATIMING']"), "1");
9 如何测试一些错误消息的显示? assertTrue(selenium.getBodyText().indexOf("错误消息")>=0);
getBodyText 返回的时浏览器页面上的文字,不回包含html 代码的,如果要显示html 代码,用下面这个:selenium.getHtmlSource();
八、Firefox 的插件
1 XPath Checker :可以用这个工具测试简化我们的xpath表达式
2 Firebug
3 Selenium IDE
4 Execute JS
初识Selenium(二)的更多相关文章
- 初识JavaScript(二)
初识JavaScript(二) 我从上一篇<初识JavaScript(一)>知道和认识JavaScript的词法结构,也开始慢慢接触到了JavaScript的使用方法,是必须按照JavaS ...
- selenium初识(二)——之webdriver API
配置完的环境之后,我们先来写一个小脚本: # __Author__:"Jim_xie" from selenium import webdriver from time impor ...
- java selenium (二) 环境搭建方法一
webdriver 就是selenium 2. webdriver 是一款优秀的,开源的,自动化测试框架. 支持很多语言. 本文描述的是用java Eclipse 如何搭建环境 阅读目录 ...
- 初识Selenium以及Selenium常用工具的简单介绍
一.为什么要学习自动化测试? 在互联网行业中敏捷开发小步快跑,快速迭代,测试环节中回归测试任务大繁琐,手工测试容易漏测,自动化测试可以提高测试效率保证产品质量. 二.学习的层次模型 1.单元自动化测试 ...
- python初识(二)
目录: 进制 基本数据类型 整形 布尔值 字符串 列表 元祖 字典 集合 range & enumerate 一.进制 二进制转换十进制计算: 十进制:==47 一个字节公式:==128 64 ...
- Selenium二次封装-Java版本
package com.yanfuchang.selenium.utils; import java.awt.AWTException; import java.awt.Robot; import j ...
- Selenium二次封装-Python版本
from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from seleni ...
- python网络爬虫之自动化测试工具selenium[二]
目录 前言 一.获取今日头条的评论信息(request请求获取json) 1.分析数据 2.获取数据 二.获取今日头条的评论信息(selenium请求获取) 1.分析数据 2.获取数据 房源案例(仅供 ...
- Selenium(二)---无界面模式+滑动底部
一.使用无界面模式 1.正常情况启动 selenium 是有界面的 2.有些情况下,需要不显示界面,这时只要设置一下参数就可以实现了 # 不想显示界面可以用 Chrome——配置一下参数就好 from ...
随机推荐
- poj 1687 Buggy Sat 简单计算几何
暑期集训出的第一道一血 感觉自己萌萌哒…… 这道题本身并没有坑点 仅仅是翻译巨坑…… 解大腿在做B 安学长在做E 我闲着也没事 就一个词一个词翻译F…… 最后感觉…… 题干大多数都看不懂…… 也都没啥 ...
- VS中调试时监控线程的最后错误代码
进行调试的时候,监控线程的最后错误代码是非常有用的. 在 Microsoft Visual studio 中,Microsoft 的调试程序支持一个非常有用的特性,即可以配置 Watch 窗口,以便始 ...
- $and $not null 正则表达式
查询MasterID大于1且MasterType等于TestType的文档: db.SysCore.find({$and:[{"MasterID":{$gt:1}},{" ...
- Openjudge-计算概论(A)-求分数序列和
描述: 有一个分数序列 2/1,3/2,5/3,8/5,13/8,21/13,.... 求这个分数序列的前n项之和.输入输入有一行:正整数n.输出输出有一行:分数序列的和(浮点数,精确到小数点后4位) ...
- B - ACboy needs your help(动态规划,分组背包)
B - ACboy needs your help Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & ...
- Python 学习笔记10
念念不忘,必有回响. 今天继续学习Python 类.
- 对方网络ping不通
后台接口往往部署在其他服务器上如果ping不同 很大可能是因为对方开防火墙的原因 解决方法:控制面板-windows防火墙-打开或关闭windows防火墙
- 1001. A+B Format
Calculate a + b and output the sum in standard format -- that is, the digits must be separated into ...
- Jena文档《An Introduction to RDF and the Jena RDF API》的译文
前言本文是一篇对W3C的资源描述框架(RDF)和 Jena(一个Java的RDF API)的教程性介绍. 本文是为那些不熟悉RDF的, 以及那些通过建立原形可以达到最好学习效果的, 或是因为其他原因希 ...
- Android Studio 项目结构
在Android Studio中创建项目后,会出现 activity_main.xml 和 MainActivity.java 两个文件 其中 Java文件定义了一个Activity,当应用运行时, ...