Selenium应用代码(读取excel的内容进行注册的案例)
1. 封装读取excel数据的方法:
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import jxl.*;
import jxl.read.biff.BiffException;
public class TestExcel {
/**
* 将EXCEL表格按单元格读取,放入一个二维数组中。 <一句话功能简述> <功能详细描述>
*
* @param fileName
* 文件的名称,带路径
* @param sheetName
* excel的sheet的名称
* @param fromRownum
* 开始的行数
* @param endRownum
* 结束的行数
* @return
* @throws BiffException
* @throws IOException
* @see [类、类#方法、类#成员]
*/
public static String[][] getExcelData(String fileName, String sheetName,
int fromRownum, int endRownum) throws BiffException, IOException {
Workbook book = Workbook.getWorkbook(new File(fileName));
String[][] data = null;
Sheet st = book.getSheet(sheetName);
int rows = st.getRows();
int cols = st.getColumns();
if (endRownum > rows)
endRownum = rows;// 如果指定结束的行数大于excel表格内容的最大行数,结束的行数取excel的最大行数作为结束的行数
data = new String[endRownum - fromRownum + 1][cols];
int rRow = 0;
for (int iRow = fromRownum; iRow <= endRownum; iRow++) {
for (int iCol = 0; iCol < cols; iCol++) {
String val = st.getCell(iCol, iRow).getContents().trim();// 列,行
data[rRow][iCol] = val;
}
rRow++;
}
book.close();
return data;
}
}
2. 封装对象,这里以注册为例,故以注册信息为对象封装:
public class RegisterData {
public String iphoneN;
public String passN;
public String imgYz;
public String messYz;
public String errNote;
public void setiphoneN(String iphoneN){
this.iphoneN=iphoneN;
}
public String getiphoneN(){
return iphoneN;
}
public void setpassN(String passN){
this.passN=passN;
}
public String getpassN(){
return passN;
}
public void setimgYz(String imgYz){
this.imgYz=imgYz;
}
public String getimgYz(){
return imgYz;
}
public void setmessYz(String messYz){
this.messYz=messYz;
}
public String getmessYz(){
return messYz;
}
public void seterrNote(String errNote){
this.errNote=errNote;
}
public String geterrNote(){
return errNote;
}
}
3. 使用testng+selenium进行注册测试:
采用了DataProvider,由于必须是object或Iterator<Object[]>对象,故对步骤2读出来的对象转换了一下。
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class RegisterTest {
static TestExcel ResEx=new TestExcel();
WebDriver regpage=new ChromeDriver();
@DataProvider(name = "testData")
public Iterator<Object[]> RegisterTest_data() {
List<RegisterData> datalist = new ArrayList<RegisterData>();
List<Object[]> dataToBe = new ArrayList<Object[]>();
try {
String[][] s = ResEx.getExcelData("F:\\Users\\Wangtest\\workspace\\TestNG\\data\\register.xls", "Sheet1", 1, 3);
for (int i = 0; i < s.length; i++) {
RegisterData data = new RegisterData();
data.setiphoneN(s[i][0]);
data.setpassN(s[i][1]);
data.setimgYz(s[i][2]);
data.setmessYz(s[i][3]);
data.seterrNote(s[i][4]);
datalist.add(data);
}
for (RegisterData userData : datalist)
{
dataToBe.add(new Object[] { userData } );
}
} catch (Exception e) {
e.printStackTrace();
}
return dataToBe.iterator();
}
@Test(dataProvider="testData")
public void f(RegisterData dataex)
throws Exception {
regpage.get("http://login.maijia.com/register.htm");
try {
Thread.sleep(3000);
regpage.findElement(By.name("mobile")).sendKeys(dataex.iphoneN);
regpage.findElement(By.name("loginPassword")).sendKeys(dataex.passN);
regpage.findElement(By.name("validateCode")).sendKeys(dataex.imgYz);
regpage.findElement(By.name("identifyCode")).sendKeys(dataex.messYz);
regpage.findElement(By.xpath("//button[contains(.,'注册')]")).click();
WebElement tips=regpage.findElement(By.xpath("//*[@id='J_Page-register']/div/div[2]/div/form/div[2]/div[3]/div"));
if(tips.getText().matches(dataex.errNote)){
System.out.println(dataex.errNote+":pass");
Thread.sleep(2000);
}
else{
System.out.println(dataex.errNote+":error");
Thread.sleep(2000);
}
}
catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();}
}
}
Selenium应用代码(读取excel的内容进行注册的案例)的更多相关文章
- PHP读取Excel文件内容
PHP读取Excel文件内容 项目需要读取Excel的内容,从百度搜索了下,主要有两个选择,第一个是PHPExcelReader,另外一个是PHPExcel. PHPExcelReader比较 ...
- 使用POI读取excel文件内容
1.前言 项目中要求读取excel文件内容,并将其转化为xml格式.常见读取excel文档一般使用POI和JExcelAPI这两个工具.这里我们介绍使用POI实现读取excel文档. 2.代码实例: ...
- C# 读取Excel表格内容,以及NPOI的使用
在实际的开发中,我们可能需要读写word或者Excel的内容,在我开发的项目中,需要读取Excel的内容,并将相对应的内容存储到数据库中,这里简单跟大家分享一下,希望能够帮助一些人. 我相信在读写wo ...
- java的poi技术下载Excel模板上传Excel读取Excel中内容(SSM框架)
使用到的jar包 JSP: client.jsp <%@ page language="java" contentType="text/html; charset= ...
- 关于jquery js读取excel文件内容 xls xlsx格式 纯前端
附带参考:http://blog.csdn.net/gongzhongnian/article/details/76438555 更详细导入导出:https://www.jianshu.com/p/7 ...
- c# 读取 excel文件内容,写入txt文档
1 winform 读取excel文档 1)点击button按钮,弹出上传excel窗口 private void button_headcompany_Click(object sender, Ev ...
- java 读取 excel 表格内容
一.添加依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</ar ...
- 使用NPOI读取Excel表格内容并进行修改
前言 网上使用NPOI读取Excel文件的例子现在也不少,本文就是参考网上大神们的例子进行修改以适应自己需求的. 参考博文 http://www.cnblogs.com/restran/p/38894 ...
- phpcms代码读取文章的内容 实用可行的方法
在使用phpcms做网站的时候经常遇到读取网站的内容作为推荐,而不是描述.这里使用可行的方法交你如何读取内容推荐.方法有两个,第一种执行的效率低,第二个效率高些. 1. {pc:get sql=&qu ...
随机推荐
- group by 语句
user E_book go 这样的程序会出错,因为play没有使用sum,所以要分组. group by play 有函数的和没有函数的表一起使用要用 GROUP BY .AVG 求平均值,只能与数 ...
- Idea 配置启动JDK___在windows中使用Intellij Idea时选择自定义的64位JVM
略过下面的叙述快速配置 配置你的Idea启动jdk (Idea15之后的版本启动不要JDK1.8) 添加环境变量IDEA_JDK_64,配置和JAVA_HOME环境变量相同,路径写到1.8的jdk就 ...
- shell编程之while死循环
原文 在linux下编程的程序猿都知道shell脚本,就算你不怎么熟悉,也应该听过的吧!那在shell脚本中的死循环该怎么写呢? 对于熟悉C语言的猿人们来说,最简单的死循环应该这样写: ------- ...
- 建造者(生成器)模式C++、Java实现
1.建造者模式UML 图1. 建造者模式UML 2.C++实现 C++实现类视图: 图2. 建造者模式C++实现的类视图 其中,Product的实现代码是(ProductA和ProductB的代码不再 ...
- jquery弹窗居中-类似alert()
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- git 永久性设置密码
git 设置不需要输入密码 https方式每次都要输入密码,按照如下设置即可输入一次就不用再手输入密码的困扰而且又享受https带来的极速 设置记住密码(默认15分钟): git config --g ...
- java 用Graphics制作模糊验证码
这篇随笔主要是java中制作验证码的效果,由于是在国庆前做的,现在也找不到原载了.我对自己整理的发表一份 生成的验证码效果如下: 一.建立一个工具类,用来生成验证码 package com.dkt.u ...
- javaScript 面向对象开发实例
javaScript 面向对象开发实例 这个是结合require的模块化开发,首先创建构造函数: //test.js 1 function Test(lists) { var config={ nam ...
- LinqToSql EntityFramework(ef)查看生成的sql语句
var dc=new DBDataContext(); TextWriter tw = new StringWriter(); dc.Log = tw; var list = dc.News.Skip ...
- css 元素居中各种办法
一:通过弹性布局<style> #container .box{ width: 80px; height: 80px; position: absolute; background:red ...