有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在SeleniumWebdriver中使用带有Sikuli的Java变量

下面的代码是Selenium Webdriver中的Java代码。代码从excel工作表中读取一个长列表。它将每个excel单元格中的值存储在变量LastNameFirstName中。在导航到SQLServerManagementStudio数据库之后,我需要在查询中使用变量。这就是我的问题所在。当我使用命令屏幕时。键入(姓氏);',变量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) 个答案

  1. # 1 楼答案

    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中的变量应该以小写开头