初识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 ...
随机推荐
- Spring入门学习(一)
Spring的主要功能是控制反转和面向切面编程,下面我们就来编写第一个spring的程序来体验一下控制反转 首先是加载配置文件 <?xml version="1.0" enc ...
- openwrt 中procd
https://wiki.openwrt.org/doc/techref/procd Procd:Openwrt的进程管理守护进程(process management daemon),它与初始化脚本 ...
- [Jmeter]jemeter启动报错,返回错误码 5,处理方法
今天在使用jmeter的时候,启动GUI,发现bat文件执行有告警,告警内容如下: java.util.prefs.WindowsPreferences <init>WARNING: Co ...
- java抽象类的特点
抽象类 抽象类的特点: 1.抽象类的方法可以是抽象的,也可以是不抽象的. 2.抽象类的方法可以全是抽象的,也可以全是不抽象的. 3.有抽象方法的类必须是抽象类,或者是接口(但是接口的方法定义必须是pu ...
- DHCP 协议的 8 种消息类型及功能服务器
1) 主机发送 DHCP Discover 广播包在网络上寻找 DHCP 服务器: 单播数据包, 地址. 2) DHCP 服务器向主机发送 DHCP Offer 单播数据包,包含 IP 地址.MAC ...
- POJ 3347 Kadj Squares (线段覆盖)
题目大意:给你几个正方形的边长,正方一个顶点在x轴上然后边与x轴的夹角为45度,每个正方形都是紧贴的,问从上面看能看的正方形的编号 题目思路:线段覆盖,边长乘上2防止产生小数,求出每个正方形与x轴平行 ...
- Jquery实现表格的分页
功能描述 该分页功能不是一次将所有记录都加载出来,然后在点击按钮翻页的时候,通过设置每一条记录的display属性展示或隐藏实现分页的效果.由于后台的获取数据的接口已实现分页的功能,所以在点击翻页按钮 ...
- 将数据动态加载到Echarts饼图中
需求描述 Echarts中的官方示例是将数据的设定写好在页面的配置项中的,但在实际的开发展示中,我们需要按照需求通过调用后台的接口获取数据,再将数据加载到特定的Echarts饼图中. 实现效果 实现步 ...
- CSS传统布局之布局模型
刚开始准备这篇文章的时候,查到的有很多包含“布局模型”的中文博客或是资料,但是google上并未找到类似字眼,google到的是“flex layout module”“grid layout mod ...
- nmon 安装
安装: mkdir /usr/local/nmon cd /usr/local/nmon wget http://sourceforge.net/projects/nmon/files/nmon_li ...