以下代码是Selenium Webdriver中的Java代码。该代码从Excel工作表中读取一个长列表。它将每个Excel单元格中的值存储在变量LastName
和FirstName
中。导航到SQL Server管理工作室数据库后,我需要在查询中使用变量。这是我遇到问题的地方。当我使用命令' screen.type(LastName);'时,变量LastName
抛出"无法解析为变量"错误。
如何使用Sikuli中Java中定义的变量LastName
和FirstName
。
File src = new File ("C:\\EmployeeList.xlsx");
FileInputStream fis = new FileInputStream(src);
XSSFWorkbook wb = new XSSFWorkbook(fis);
XSSFSheet sheet1 = wb.getSheetAt(0);
int rowcount=sheet1.getLastRowNum();
System.out.println("Total Row is :" + rowcount);
for (int i=0; i<rowcount;i++) {
String LastName=sheet1.getRow(i).getCell(0).getStringCellValue();
String FirstName=sheet1.getRow(i).getCell(1).getStringCellValue();
System.out.println("Data Employee List is " +i+ " "+"is "+ LastName+ ", "+FirstName+");
}
wb.close();
//Navigated into SQL Server management studio database
screen.type(LastName);
答案 0 :(得分:0)
LastName
在for
循环本地范围内声明,因此它不存在于for
之外。你需要在
String lastName, firstName;
for (int i = 0 ; i < rowcount ; i++) {
lastName = sheet1.getRow(i).getCell(0).getStringCellValue();
firstName = sheet1.getRow(i).getCell(1).getStringCellValue();
System.out.println("Data Employee List is " + i + " " + "is " + lastName + ", " + firstName);
}
screen.type(lastName);
我不确定这是否有意,但screen.type(lastName);
只会使用lastName
的最后值。如果要使用所有这些,请将其插入循环中。在这种情况下,您可以将lastName
声明留在for
for (int i = 0 ; i < rowcount ; i++) {
String lastName = sheet1.getRow(i).getCell(0).getStringCellValue();
String firstName = sheet1.getRow(i).getCell(1).getStringCellValue();
System.out.println("Data Employee List is " + i + " " + "is " + lastName + ", " + firstName);
screen.type(lastName);
}
顺便说一句,Java中的变量应该以小写字母开头。