gpt4 book ai didi

java - 如何将变量设置为 Apache POI 迭代数据值

转载 作者:行者123 更新时间:2023-12-01 10:17:42 24 4
gpt4 key购买 nike

我有两个脚本;一个使用 Apache POI 从 Excel 工作表读取数据,另一个使用 Selenium 从 apache 脚本获取接收到的数据并将这些数据用于输入字段。

这是我的 apache excel 阅读器脚本:

public class readExcelFinal{
static ArrayList<Double> priceList;
static ArrayList<String> titleList;
static ArrayList<String> descriptionList;
static ArrayList<String> imageLocationList;

public static void processExcelFile(String fileName) throws IOException{
priceList = new ArrayList<Double>();
titleList = new ArrayList<String>();
descriptionList = new ArrayList<String>();
imageLocationList = new ArrayList<String>();

try{
FileInputStream myInput = new FileInputStream(fileName);
POIFSFileSystem myFileSystem = new POIFSFileSystem(myInput);
HSSFWorkbook myWorkBook = new HSSFWorkbook(myFileSystem);
HSSFSheet mySheet = myWorkBook.getSheetAt(2);
Iterator rowIter = mySheet.rowIterator();

// For each row,
while(rowIter.hasNext()){
HSSFRow row = (HSSFRow) rowIter.next();

// If there's a cell at index 0, it's a price
if(row.getCell(0) != null)
priceList.add(row.getCell(0).getNumericCellValue());

// If there's a cell at index 1, it's a title
if(row.getCell(1) != null)
titleList.add(row.getCell(1).getStringCellValue());

// If there's a cell at index 2, it's a description
if(row.getCell(2) != null)
descriptionList.add(row.getCell(2).getStringCellValue());

// If there's a cell at index 3, it's an image location
if(row.getCell(3) != null)
imageLocationList.add(row.getCell(3).getStringCellValue());
}
}catch(Exception e){
e.printStackTrace();
}
}

public static void createTests(){
// Create an RNG to re-use
Random randomGenerator = new Random();


// Iterate through the price list and create tests
for (Double price : priceList){

// For each of title, description, and image location, get a random index into the list and pull the value
int titleIndex = randomGenerator.nextInt(titleList.size());
String title = titleList.get(titleIndex);

int descriptionIndex = randomGenerator.nextInt(descriptionList.size());
String description = descriptionList.get(descriptionIndex);

int imageLocationListIndex = randomGenerator.nextInt(imageLocationList.size());
String imageLocation = imageLocationList.get(imageLocationListIndex);


System.out.println("Creating test for Price " + price + "\n\tTitle:\t" + title + "\n\tDesc:\t" + description + "\n\tImg:\t" + imageLocation);

}
}

public static String price;
public static String title;
public static String description;
public static String imageLocation;

public void setName(String price) {
this.price = price;
}

public static String getPrice() {
return price;
}

public void setDescription(String description) {
this.description = description;
}

public static String getDescription() {
return description;
}

public void setTitle(String title) {
this.title = title;
}

public static String getTitle() {
return title;
}

public void setImageLocation(String imageLocation) {
this.imageLocation = imageLocation;
}

public static String getImageLocation() {
return imageLocation;
}

}

这是我的(部分) Selenium 脚本:

public class webDriver {


public static void main(String[] args) throws Exception {

//THIS IS WHERE IM PULLING THE METHOD INTO MY SELENIUM SCRIPT
readExcelFinal.main(args);



//EXCELL DATA
String price = readExcelFinal.getPrice();
String title = readExcelFinal.getTitle();
String description = readExcelFinal.getDescription();
String imageLocation = readExcelFinal.getTitle();

System.out.println("Creating test for Price " + price + "\n\tTitle:\t" + title + "\n\tDesc:\t" + description + "\n\tImg:\t" + imageLocation);

// The Firefox driver supports javascript
WebDriver driver = new FirefoxDriver();

正如您在我的 Selenium 脚本中看到的,我正在使用:

 System.out.println("Creating test for Price " + price + "\n\tTitle:\t" + title + "\n\tDesc:\t" + description + "\n\tImg:\t" + imageLocation);

快速查看控制台中的数据,这样我就不必等待整个脚本运行来查看变量是否正在获取值。我将其返回到控制台:

Creating test for Price null
Title: null
Desc: null
Img: null

我没有从脚本中获取任何测试用例数据。

最佳答案

null 值背后的原因是,您正在尝试打印变量 pricetitledescription但是,通过调用 getXXX 方法,它们不会在代码中的任何位置设置/分配值(例如,我看不到在任何地方调用 setXXX() ),因此,default值被分配并打印。

顺便说一句,我建议您仔细阅读 Java Programming Basics 以及 static and non static 变量/成员之间的差异。

关于java - 如何将变量设置为 Apache POI 迭代数据值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35803894/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com