在Selenium-Webdriver中使用带有Sikuli的Java变量

时间:2016-03-27 12:51:48

标签: java selenium-webdriver sikuli

以下代码是Selenium Webdriver中的Java代码。该代码从Excel工作表中读取一个长列表。它将每个Excel单元格中的值存储在变量LastNameFirstName中。导航到SQL Server管理工作室数据库后,我需要在查询中使用变量。这是我遇到问题的地方。当我使用命令' screen.type(LastName);'时,变量LastName抛出"无法解析为变量"错误。

如何使用Sikuli中Java中定义的变量LastNameFirstName

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);

1 个答案:

答案 0 :(得分:0)

LastNamefor循环本地范围内声明,因此它不存在于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中的变量应该以小写字母开头。