J'ai plusieurs feuilles dans un classeur, il a lu chaque ligne aussi.Comment lire plusieurs feuilles en continu à partir d'un classeur en utilisant java?
Mais chaque fois qu'il commence à lire la feuille de la première rangée et à cause de cela quand il commence à définir/écrire l'état des cas, il recommence à définir le résultat de la première rangée signifie qu'il chevauche le résultat de chaque cas. même rangée.
Aussi, pour la lecture et l'écriture de feuille j'utilise JXL api.
Voici le code pour la logique peut-on s'il vous plaît laissez-moi savoir comment résoudre ce:
private void handleScenario(String scenarioName) throws Exception {
ExcelHandler testScenarios = new ExcelHandler(TEST_SUITE_PATH);
testScenarios.setSheetName(scenarioName);
testScenarios.columnData();
int rowWorkBook1 = testScenarios.rowCount();
System.out.println("Total Rows1: "+ rowWorkBook1);
for (int j = 1; j < rowWorkBook1; j++) {
String sno = testScenarios.readCell(testScenarios.getCell("Sno"), j); // SendKey
String testCaseDescription = testScenarios.readCell(testScenarios.getCell("TestCaseDescription"), j);
String framWork = testScenarios.readCell(testScenarios.getCell("FrameworkName"), j);
String operation = testScenarios.readCell(testScenarios.getCell("Operation"), j); // SendKey
String value = testScenarios.readCell(testScenarios.getCell("Value"), j);
handleObjects(operation, value, framWork);
boolean bTestCaseStepStatus = handleObjects(operation,value, framWork);
generateReport(bTestCaseStepStatus, scenarioName, sno,testCaseDescription, j);
}
}
private boolean generateReport(boolean bTestCaseStepStatus,
String testSuiteName, String SNO, String testCaseDescription, int j)
throws RowsExceededException, WriteException, IOException {
WritableData writableData = new WritableData(TEST_RESULT, testSuiteName, j, 2);
// If sheet name is already exist then .... write data at row = row +1
// else write directly .. means row = 1
if (bTestCaseStepStatus) {
//System.out.println("--------------"+bTestCaseStepStatus+"------------");
System.out.println("SNo=" +SNO+ ",Test description=" + testCaseDescription + "Row ID: " + j);
writableData.shSheet("Result", 2, j, "Pass");
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
} else {
// System.out.println("--------------"+bTestCaseStepStatus+"------------");
System.out.println("SNo=" +SNO+ ",Test description=" + testCaseDescription + "Row ID: "+ j);
writableData.shSheet("Result", 2, j, "Fail");
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
}
return bTestCaseStepStatus;
// Finally .... close Report file ...
}
private boolean handleObjects(String operation, String value,
String framWork) throws Exception {
// Return true/False
ExcelHandler objectRepository = new ExcelHandler(OBJECT_REPOSITORY_PATH, "OR");
objectRepository.columnData();
int rowCount = objectRepository.rowCount();
//System.out.println("Total Rows in hadleObject=" + rowCount);
boolean testStepStatus = false;
for (int k = 1; k < rowCount; k++) {
String frameWorkName = objectRepository.readCell(
objectRepository.getCell("FrameworkName"), k);
String ObjectName = objectRepository.readCell(
objectRepository.getCell("ObjectName"), k);
String Locator = objectRepository.readCell(
objectRepository.getCell("Locator"), k); // SendKey
//System.out.println("FrameWorkNameV=" + frameWorkName
// + ",ObjectName=" + ObjectName + ",Locator=" + Locator);
if (framWork.equalsIgnoreCase(frameWorkName)) {
testStepStatus = operateWebDriver(operation, Locator, value,
ObjectName);
}
}
return testStepStatus;
}
méthode handleObjects() est appelée deux fois - est-ce intentionnel? En outre, il semble que tout ce que vous faites est de lire les valeurs dans cette partie de votre code, pourriez-vous poster vos méthodes handleObjects() et generateReport()? –
@UlliSchmid J'ai posté les méthodes handleObjects() et generateReport() à la fois s'il vous plaît vérifier. – SelenyanC2
Merci pour cela.Encore une fois - handleObjects (opération, valeur, framWork); est appelé 2 fois - intentionnel? Peut-être essayer de commenter la ligne 16? –