2016-03-27 11 views
1

以下のコードは、Selenium WebdriverのJavaコードです。コードはExcelシートから長いリストを読み込みます。各Excelセルの値を変数LastNameFirstNameに格納します。 SQL Server管理スタジオデータベースに移動した後、クエリで変数を使用する必要があります。これが問題の原因です。コマンド 'screen.type(LastName);'を使用すると、変数LastNameは「変数に解決できません」というエラーをスローします。Selenium-WebdriverでSikuliでJava変数を使用する

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

答えて

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の唯一最後値を使用することを宣言する必要があります。それらのすべてを使用したい場合は、ループに挿入します。その場合、あなたはところで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); 
} 

lastName宣言を残すことができ、Javaでの変数は小文字で始めるべきです。

+0

ありがとうございます!ヘルプをよろしくお願いいたします。目的は、Excelシートの行の各セルから値を取得することです。 SQLクエリの値を使用し、Excelシートの次の行に戻ります。 – sama

関連する問題