А затем используйте его в своем коде, например:
аюсь найти файл, основанный на первых 8 числах, которые я извлекаю из листа Excel для каждой итерации. Всякий раз, когда я использую приведенный ниже код, я получаю сообщение об ошибке «Локальная переменная CaseID, определенная в области видимости, должна быть конечной или фактически конечной». Я все еще новичок, поэтому я не уверен, как это исправить, хотя это звучит как простое исправление. Проблема возникает в переменной caseID внизу кода.
package Chrome;
//CHROME
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DataFormatter;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
public class ValidateInput {
public static void main(String[] args) throws Throwable {
// TODO Auto-generated method stub
// String filePath=System.getProperty("user.dir")+"\\UP.xlsx";
//File src = new File(filePath);
//System.out.println(filePath);
File src = new File("C:\\Users\\Z246379\\Documents\\TestDataFolder\\ValidateInput.xlsx");
FileInputStream fis = new FileInputStream(src);
XSSFWorkbook wb = new XSSFWorkbook(fis);
XSSFSheet Sheet1 = wb.getSheetAt(0);
int i1 = 2;
//Username
String data0 = Sheet1.getRow(2).getCell(0).getStringCellValue();
//Password
String data01 = Sheet1.getRow(2).getCell(1).getStringCellValue();
//Case ID
String caseID = Sheet1.getRow(i1).getCell(2).getStringCellValue();
// Description
String Desc = Sheet1.getRow(2).getCell(3).getStringCellValue();
//Internal Claim File
String ICF = Sheet1.getRow(1).getCell(4).getStringCellValue();
String CRPT = Sheet1.getRow(1).getCell(5).getStringCellValue();
// final String caseID1 = caseID1;
//Chrome driver code
System.out.println("Called openBrowser");
String exePath = System.getProperty("user.dir")+"\\chromedriver.exe";
System.setProperty("webdriver.chrome.driver", exePath);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("useAutomationExtension", false);
options.addArguments("start-maximized");
options.addArguments("--no-sandbox");
options.addArguments("--disable-extensions-except");
options.addArguments("disable-extensions");
//options.setExperimentalOption("useAutomationExtension", false);
WebDriver driver = new ChromeDriver(options);
driver.get("https://client.abc.com");
//Logging in
driver.findElement(By.xpath("//input[@id='userid']")).sendKeys(data0);
driver.findElement(By.xpath("//body[@class='no-nav']/div[@id='wrapper']/header[@class='header']/div[@class='container']/div[@class='menu']/div[@class='drop']/div[@class='login-form']/form[@method='POST']/div[2]/input[1]")).sendKeys(data01);
driver.findElement(By.xpath("//input[@value='Sign In']")).click();
Thread.sleep(2000);
//Navigate to Validate Input
driver.findElement(By.xpath("//span[@class='wpsNavLevel2'][contains(text(),'EZ-Test')]")).click();
Thread.sleep(3000);
driver.get("https://ezt.abc.com/Test/inputFiles/selectValidateInput/selectValidateInput.xhtml");
while (caseID != null)
{
caseID = Sheet1.getRow(i1).getCell(2).getStringCellValue();
//Input Validate Input stuff
driver.findElement(By.xpath("//input[@id='mainForm:caseId']")).sendKeys(caseID);
driver.findElement(By.xpath("//input[@id='mainForm:testBedDesc']")).sendKeys(Desc);
driver.findElement(By.xpath("//select[@id='mainForm:customRptOptions']")).sendKeys(ICF);
driver.findElement(By.xpath("//span[@id='mainForm:customReportLabel']")).click();
File dir = new File("C:\\Users\\Z333379\\Documents\\Test beds");
FilenameFilter filter = new FilenameFilter() {
public boolean accept (File dir, String name) {
return name.startsWith(caseID); //this is where i get the error. its not letting me make case ID a variable. but i really need the starts with stuff
}
};
String[] children = dir.list(filter);
if (children == null) {
System.out.println("Either dir does not exist or is not a directory");
} else {
for (int i=0; i< children.length; i++) {
String filename = children[i];
System.out.println(filename);
driver.findElement(By.xpath("//input[@id='mainForm:comprehensive']")).sendKeys("C:\\Users\\Z246379\\Documents\\Test beds\\" + filename);
}
}
driver.findElement(By.xpath("//button[@id='mainForm:reset']")).click();
i1=i1+1;
}
}
}