由于有两个测试环境,有时候涉及到从这个测试环境把配置数据移到另外个环境。可以从数据库直接操作,但是为了练java+selenium+jxl,所以我从web页面上进行操作。思路如下:
1.从这个测试环境中获取配置,并写入Excel表格;
2.进入到另外一个测试环境,通过页面的新增功能,逐条读取Excel表格中的数据,并新增。
相关代码段如下:
写Excel文件的代码:
/**
* //向Excel表格写入页面table中的数据
* @param className
* @param driver
* @param table
* @param refreshElement
*/
public static void outPutFromTable(String className,WebDriver driver,WebElement table,String refreshElement){
//获取类名为工作薄名
String excelName = getClassToExcelName(className);
//获取方法名为工作表名
String sheetName = Common.getRunFromCallFunc();
//先获取表头列名
List titleNames = ElementOperater.getTableTitleName(driver);
//获取表格内容
List<String> contentName = ElementOperater.getPageTableContent(driver, table, refreshElement);
try {
WritableWorkbook wk = Workbook.createWorkbook(new File(excelName+".xls"));//创建一个工作薄
WritableSheet st = wk.createSheet(sheetName, 0);//创建一个工作表
Label lab = null;
for(int r=0;r<contentName.size();r++){//根据表格中的内容循环
for(int c=0;c<titleNames.size();c++){//根据表头的列数循环
if(r==0&&c<titleNames.size()){//如果是第一行,并且列数小于列的长度
lab = new Label(c,r,(String)titleNames.get(c));//创建第c列第r行的Label对象
try {
st.addCell(lab);//把label对象添加入表sheet的单元格
} catch (WriteException e) {
e.printStackTrace();
}
}else{
lab = new Label(c,r,(String)contentName.get(c));
try {
st.addCell(lab);
} catch (WriteException e) {
e.printStackTrace();
}
}
}
}
try {
wk.write();//写入
wk.close();//关闭
} catch (WriteException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
读取Excel的代码参考另一篇博文
https://my.oschina.net/bysu/blog/832256