From 4efe6b3060c431fe419ce260a86578708041bfe6 Mon Sep 17 00:00:00 2001 From: Mohab Mohie Date: Mon, 10 Mar 2025 02:40:36 +0200 Subject: [PATCH] Merge pull request #1931 * only publish javadocs if a new release is successful * fix expected exceptions * migrate visual validations to new core --- .github/workflows/publishJavaDocs.yml | 2 +- .../DriverFactory/SynchronizationManager.java | 2 + .../io/internal/ReportManagerHelper.java | 2 +- .../internal/ValidationsExecutor.java | 3 +- .../internal/ValidationsHelper.java | 118 ------------------ .../internal/ValidationsHelper2.java | 105 ++++++++++++++-- .../MultipleElementsFailureTest.java | 2 +- .../mockedTests/NoSuchElementFailureTest.java | 2 +- .../VisualValidationTests.java | 3 +- 9 files changed, 103 insertions(+), 136 deletions(-) diff --git a/.github/workflows/publishJavaDocs.yml b/.github/workflows/publishJavaDocs.yml index 095f2fb5e8b..84560e7e532 100644 --- a/.github/workflows/publishJavaDocs.yml +++ b/.github/workflows/publishJavaDocs.yml @@ -5,7 +5,7 @@ name: JavaDocs Publisher on: workflow_run: workflows: [ "Maven Central Continuous Delivery" ] - types: [ requested ] + types: [ completed ] branches: - 'main' workflow_dispatch: diff --git a/src/main/java/com/shaft/driver/internal/DriverFactory/SynchronizationManager.java b/src/main/java/com/shaft/driver/internal/DriverFactory/SynchronizationManager.java index 1cc0d5c6087..9c177a5a747 100644 --- a/src/main/java/com/shaft/driver/internal/DriverFactory/SynchronizationManager.java +++ b/src/main/java/com/shaft/driver/internal/DriverFactory/SynchronizationManager.java @@ -1,6 +1,7 @@ package com.shaft.driver.internal.DriverFactory; import com.shaft.driver.SHAFT; +import com.shaft.gui.internal.exceptions.MultipleElementsFoundException; import org.openqa.selenium.WebDriver; import org.openqa.selenium.remote.Browser; import org.openqa.selenium.support.ui.FluentWait; @@ -35,6 +36,7 @@ private ArrayList> getExpectedExceptions(boolean isVa expectedExceptions.add(org.openqa.selenium.StaleElementReferenceException.class); expectedExceptions.add(org.openqa.selenium.JavascriptException.class); expectedExceptions.add(org.openqa.selenium.ElementClickInterceptedException.class); + expectedExceptions.add(MultipleElementsFoundException.class); if (isValidToCheckForVisibility) { expectedExceptions.add(org.openqa.selenium.ElementNotInteractableException.class); diff --git a/src/main/java/com/shaft/tools/io/internal/ReportManagerHelper.java b/src/main/java/com/shaft/tools/io/internal/ReportManagerHelper.java index 7745bc5a187..1b3898271c1 100644 --- a/src/main/java/com/shaft/tools/io/internal/ReportManagerHelper.java +++ b/src/main/java/com/shaft/tools/io/internal/ReportManagerHelper.java @@ -348,7 +348,7 @@ public static String getCallingClassFullName() { StackTraceElement[] callingStack = Thread.currentThread().getStackTrace(); var getCallingClassFullName = new StringBuilder(); for (var i = 1; i < callingStack.length; i++) { - if (!callingStack[i].getClassName().contains("shaft")) { + if (!callingStack[i].getClassName().contains("shaft") && !callingStack[i].getClassName().equals("org.openqa.selenium.support.ui.FluentWait")) { getCallingClassFullName.append(callingStack[i].getClassName()); break; } diff --git a/src/main/java/com/shaft/validation/internal/ValidationsExecutor.java b/src/main/java/com/shaft/validation/internal/ValidationsExecutor.java index f2240a721b6..ce8ce90bd52 100644 --- a/src/main/java/com/shaft/validation/internal/ValidationsExecutor.java +++ b/src/main/java/com/shaft/validation/internal/ValidationsExecutor.java @@ -169,8 +169,7 @@ private void performValidation() { new ValidationsHelper().validateTrue(validationCategory, condition, validationType, customReportMessage); case "elementExists" -> new ValidationsHelper2(validationCategory).validateElementExists(driver.get(), locator, validationType); - case "elementMatches" -> - new ValidationsHelper().validateElementMatches(validationCategory, driver.get(), locator, visualValidationEngine, validationType, customReportMessage); + case "elementMatches" -> new ValidationsHelper2(validationCategory).validateElementMatches(driver.get(), locator, visualValidationEngine, validationType); case "elementAttributeEquals" -> new ValidationsHelper2(validationCategory).validateElementAttribute(driver.get(), locator, elementAttribute, String.valueOf(expectedValue), validationComparisonType, validationType); case "elementPropertyEquals" -> diff --git a/src/main/java/com/shaft/validation/internal/ValidationsHelper.java b/src/main/java/com/shaft/validation/internal/ValidationsHelper.java index 3ceac2ddd7b..df5dc88ba14 100644 --- a/src/main/java/com/shaft/validation/internal/ValidationsHelper.java +++ b/src/main/java/com/shaft/validation/internal/ValidationsHelper.java @@ -5,17 +5,13 @@ import com.shaft.driver.SHAFT; import com.shaft.gui.browser.internal.BrowserActionsHelper; import com.shaft.gui.element.internal.ElementActionsHelper; -import com.shaft.gui.internal.image.ImageProcessingActions; import com.shaft.gui.internal.image.ScreenshotManager; -import com.shaft.properties.internal.Properties; import com.shaft.tools.io.internal.FailureReporter; import com.shaft.tools.io.internal.ReportManagerHelper; import com.shaft.validation.ValidationEnums.*; import io.restassured.response.Response; -import org.apache.logging.log4j.Level; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; -import org.openqa.selenium.remote.Browser; import java.io.File; import java.util.ArrayList; @@ -167,12 +163,6 @@ private static void pass(WebDriver driver, ValidationCategory validationCategory ValidationState.PASSED, null, null); } - private static void pass(ValidationCategory validationCategory, Number expectedValue, Number actualValue, - Object comparativeRelationType, ValidationType validationType) { - reportValidationState(null, validationCategory, String.valueOf(expectedValue), String.valueOf(actualValue), comparativeRelationType, validationType, - ValidationState.PASSED, null, null); - } - private static void fail(WebDriver driver, ValidationCategory validationCategory, String expectedValue, String actualValue, Object validationComparisonType, ValidationType validationType, @SuppressWarnings("SameParameterValue") Throwable failureReason, List> externalAttachments) { // reset state in case of failure to force reporting the failure @@ -189,54 +179,6 @@ private static void fail(WebDriver driver, ValidationCategory validationCategory ValidationState.FAILED, failureReason, null); } - private static void fail(ValidationCategory validationCategory, Number expectedValue, Number actualValue, - Object comparativeRelationType, ValidationType validationType) { - // reset state in case of failure to force reporting the failure - ReportManagerHelper.setDiscreteLogging(discreetLoggingState); - reportValidationState(null, validationCategory, String.valueOf(expectedValue), String.valueOf(actualValue), comparativeRelationType, validationType, - ValidationState.FAILED, null, null); - } - - private static void reportValidationResultOfBrowserAttribute(WebDriver driver, Object[] args) { - String[] expectedAttributeStates = (String[]) args[0]; - String propertySeparator = (String) args[1]; - String attributeClosure = (String) args[2]; - int comparisonResult = (int) args[3]; - String propertyName = (String) args[5]; - String expectedValue = (String) args[6]; - String actualValue = (String) args[7]; - ValidationComparisonType validationComparisonType = (ValidationComparisonType) args[8]; - ValidationType validationType = (ValidationType) args[9]; - ValidationCategory validationCategory = (ValidationCategory) args[10]; - if (validationType.getValue()) { - // expecting element attribute to have the correct value - if (comparisonResult == 1) { - // match - pass(driver, validationCategory, expectedAttributeStates[0] + " '" + expectedValue + propertySeparator + propertyName - + attributeClosure, actualValue, validationComparisonType, - validationType); - } else { - // no match, or unhandled issue - fail(driver, validationCategory, expectedAttributeStates[0] + " '" + expectedValue + propertySeparator + propertyName - + attributeClosure, actualValue, validationComparisonType, - validationType, null); - } - } else { - // expecting element attribute to not have the correct value - if (comparisonResult == 1) { - // match - pass(driver, validationCategory, expectedAttributeStates[1] + " '" + expectedValue + propertySeparator + propertyName - + attributeClosure, actualValue, validationComparisonType, - validationType); - } else { - // no match, or unhandled issue - fail(driver, validationCategory, expectedAttributeStates[1] + " '" + expectedValue + propertySeparator + propertyName - + attributeClosure, actualValue, validationComparisonType, - validationType, null); - } - } - } - static boolean isExpectedOrActualValueLong(String expectedValue, String actualValue) { boolean isExpectedOrActualValueLong = false; if (actualValue == null && expectedValue != null) { @@ -363,64 +305,4 @@ protected void validateResponseFileSchema(ValidationCategory validationCategory, fail(null, validationCategory, reportedExpectedValue.toString(), String.valueOf(comparisonResult).toUpperCase(), comparisonType, validationType, null, attachments); } } - - protected void validateElementMatches(ValidationCategory validationCategory, WebDriver driver, By elementLocator, VisualValidationEngine visualValidationEngine, ValidationType validationType, - String customReportMessage) { - lastUsedElementLocator = elementLocator; - //TODO: remove this temporary fix when this bug is fixed with shutterbug - //https://github.com/assertthat/selenium-shutterbug/issues/105 - if (Properties.web.targetBrowserName().equalsIgnoreCase(Browser.SAFARI.browserName())) { - visualValidationEngine = VisualValidationEngine.EXACT_OPENCV; - } - processCustomLogMessage(customReportMessage); - StringBuilder reportedExpectedResult = new StringBuilder(); - reportedExpectedResult.append("Element should "); - Boolean expectedResult = validationType.getValue(); - if (!expectedResult) { - reportedExpectedResult.append("not "); - } - reportedExpectedResult.append("match the reference screenshot"); - List> attachments = new ArrayList<>(); - byte[] referenceImage = ImageProcessingActions.getReferenceImage(elementLocator); - if (!Arrays.equals(new byte[0], referenceImage)) { - ReportManagerHelper.logDiscrete("Reference image found.", Level.INFO); - List expectedValueAttachment = Arrays.asList("Validation Test Data", "Reference Screenshot", - referenceImage); - attachments.add(expectedValueAttachment); - } else { - ReportManagerHelper.logDiscrete("Reference image not found, attempting to capture new reference.", Level.INFO); - } - if (elementActionsHelper.getElementsCount(driver, elementLocator) == 1) { - byte[] elementScreenshot; - Boolean actualResult; - - elementScreenshot = new ScreenshotManager().takeElementScreenshot(driver, elementLocator); - actualResult = ImageProcessingActions.compareAgainstBaseline(driver, elementLocator, elementScreenshot, ImageProcessingActions.VisualValidationEngine.valueOf(visualValidationEngine.name())); - - List actualValueAttachment = Arrays.asList("Validation Test Data", "Actual Screenshot", - elementScreenshot); - attachments.add(actualValueAttachment); - - if (visualValidationEngine.equals(VisualValidationEngine.EXACT_SHUTTERBUG) && !actualResult) { - //if shutterbug and failed, get differences screenshot - byte[] shutterbugDifferencesImage = ImageProcessingActions.getShutterbugDifferencesImage(elementLocator); - if (!Arrays.equals(new byte[0], shutterbugDifferencesImage)) { - List differencesAttachment = Arrays.asList("Validation Test Data", "Differences", - shutterbugDifferencesImage); - attachments.add(differencesAttachment); - } - } - if (expectedResult.equals(actualResult)) { - pass(driver, validationCategory, reportedExpectedResult.toString(), String.valueOf(actualResult).toUpperCase(), visualValidationEngine, validationType, attachments); - } else { - fail(driver, validationCategory, reportedExpectedResult.toString(), String.valueOf(actualResult).toUpperCase(), visualValidationEngine, validationType, null, attachments); - } - } else { - byte[] pageScreenshot = new ScreenshotManager().takeScreenshot(driver, null); - List actualValueAttachment = Arrays.asList("Validation Test Data", "Actual Screenshot", - pageScreenshot); - attachments.add(actualValueAttachment); - fail(driver, validationCategory, reportedExpectedResult.toString(), "Element not found".toUpperCase(), visualValidationEngine, validationType, null, attachments); - } - } } diff --git a/src/main/java/com/shaft/validation/internal/ValidationsHelper2.java b/src/main/java/com/shaft/validation/internal/ValidationsHelper2.java index cffdbc75faf..7edc8cfb0cf 100644 --- a/src/main/java/com/shaft/validation/internal/ValidationsHelper2.java +++ b/src/main/java/com/shaft/validation/internal/ValidationsHelper2.java @@ -8,7 +8,9 @@ import com.shaft.gui.element.internal.Actions; import com.shaft.gui.element.internal.ElementActionsHelper; import com.shaft.gui.element.internal.ElementInformation; +import com.shaft.gui.internal.image.ImageProcessingActions; import com.shaft.gui.internal.image.ScreenshotManager; +import com.shaft.properties.internal.Properties; import com.shaft.tools.internal.support.JavaHelper; import com.shaft.tools.io.ReportManager; import com.shaft.tools.io.internal.CheckpointStatus; @@ -18,9 +20,12 @@ import com.shaft.validation.ValidationEnums; import io.qameta.allure.Allure; import io.qameta.allure.model.Parameter; +import org.apache.logging.log4j.Level; import org.openqa.selenium.By; +import org.openqa.selenium.OutputType; import org.openqa.selenium.TimeoutException; import org.openqa.selenium.WebDriver; +import org.openqa.selenium.remote.Browser; import java.util.ArrayList; import java.util.Arrays; @@ -52,7 +57,7 @@ protected void validateEquals(Object expected, Object actual, Allure.getLifecycle().updateStep(stepResult -> stepResult.setParameters(parameters)); //end of reporting block boolean validationState = performValidation(expected, actual, type, validation); - reportValidationState(validationState, expected, actual, null, null); + reportValidationState(validationState, expected, actual, null, null, null); } protected void validateNumber(Number expected, Number actual, @@ -67,7 +72,7 @@ protected void validateNumber(Number expected, Number actual, parameters.add(new Parameter().setName("Comparison type").setValue(JavaHelper.convertToSentenceCase(String.valueOf(type))).setMode(Parameter.Mode.DEFAULT)); parameters.add(new Parameter().setName("Validation").setValue(JavaHelper.convertToSentenceCase(String.valueOf(validation))).setMode(Parameter.Mode.DEFAULT)); Allure.getLifecycle().updateStep(stepResult -> stepResult.setParameters(parameters)); - reportValidationState(validationState, expected, actual, null, null); + reportValidationState(validationState, expected, actual, null, null, null); } protected void validateBrowserAttribute(WebDriver driver, String attribute, @@ -105,7 +110,7 @@ protected void validateBrowserAttribute(WebDriver driver, String attribute, parameters.add(new Parameter().setName("Comparison type").setValue(JavaHelper.convertToSentenceCase(String.valueOf(type))).setMode(Parameter.Mode.DEFAULT)); parameters.add(new Parameter().setName("Validation").setValue(JavaHelper.convertToSentenceCase(String.valueOf(validation))).setMode(Parameter.Mode.DEFAULT)); Allure.getLifecycle().updateStep(stepResult -> stepResult.setParameters(parameters)); - reportValidationState(validationState.get(), expected, actual, driver, null); + reportValidationState(validationState.get(), expected, actual, driver, null, null); } protected void validateElementAttribute(WebDriver driver, By locator, String attribute, @@ -142,7 +147,7 @@ protected void validateElementAttribute(WebDriver driver, By locator, String att parameters.add(new Parameter().setName("Comparison type").setValue(JavaHelper.convertToSentenceCase(String.valueOf(type))).setMode(Parameter.Mode.DEFAULT)); parameters.add(new Parameter().setName("Validation").setValue(JavaHelper.convertToSentenceCase(String.valueOf(validation))).setMode(Parameter.Mode.DEFAULT)); Allure.getLifecycle().updateStep(stepResult -> stepResult.setParameters(parameters)); - reportValidationState(validationState.get(), expected, actual, driver, locator); + reportValidationState(validationState.get(), expected, actual, driver, locator, null); } protected void validateElementProperty(WebDriver driver, By locator, String property, @@ -179,7 +184,7 @@ protected void validateElementProperty(WebDriver driver, By locator, String prop parameters.add(new Parameter().setName("Comparison type").setValue(JavaHelper.convertToSentenceCase(String.valueOf(type))).setMode(Parameter.Mode.DEFAULT)); parameters.add(new Parameter().setName("Validation").setValue(JavaHelper.convertToSentenceCase(String.valueOf(validation))).setMode(Parameter.Mode.DEFAULT)); Allure.getLifecycle().updateStep(stepResult -> stepResult.setParameters(parameters)); - reportValidationState(validationState.get(), expected, actual, driver, locator); + reportValidationState(validationState.get(), expected, actual, driver, locator, null); } protected void validateElementCSSProperty(WebDriver driver, By locator, String property, @@ -191,7 +196,7 @@ protected void validateElementCSSProperty(WebDriver driver, By locator, String p try { new SynchronizationManager(driver).fluentWait(false).until(f -> { - actual.set(new ElementActions(driver, true).getCSSProperty(locator, property)); + actual.set(new Actions(driver, true).get().cssValue(locator, property)); validationState.set(performValidation(expected, actual.get(), type, validation)); return validationState.get(); }); @@ -207,7 +212,7 @@ protected void validateElementCSSProperty(WebDriver driver, By locator, String p parameters.add(new Parameter().setName("Comparison type").setValue(JavaHelper.convertToSentenceCase(String.valueOf(type))).setMode(Parameter.Mode.DEFAULT)); parameters.add(new Parameter().setName("Validation").setValue(JavaHelper.convertToSentenceCase(String.valueOf(validation))).setMode(Parameter.Mode.DEFAULT)); Allure.getLifecycle().updateStep(stepResult -> stepResult.setParameters(parameters)); - reportValidationState(validationState.get(), expected, actual, driver, locator); + reportValidationState(validationState.get(), expected, actual, driver, locator, null); } protected void validateElementExists(WebDriver driver, By locator, @@ -238,7 +243,82 @@ protected void validateElementExists(WebDriver driver, By locator, parameters.add(new Parameter().setName("Actual value").setValue(String.valueOf(actual.get())).setMode(Parameter.Mode.DEFAULT)); Allure.getLifecycle().updateStep(stepResult -> stepResult.setParameters(parameters)); // force take page screenshot, (rather than element highlighted screenshot) - reportValidationState(validationState.get(), expected, actual, driver, elementCount.get() == 0 ? null : locator); + reportValidationState(validationState.get(), expected, actual, driver, elementCount.get() == 0 ? null : locator, null); + } + + + protected void validateElementMatches(WebDriver driver, By locator, + ValidationEnums.VisualValidationEngine visualValidationEngine, ValidationEnums.ValidationType validation) { + // read actual value based on desired existing state + // Note: do not try/catch this block as the upstream failure will already be reported along with any needed attachments + AtomicBoolean expected = new AtomicBoolean(false); + AtomicBoolean actual = new AtomicBoolean(false); + AtomicBoolean validationState = new AtomicBoolean(false); + AtomicInteger elementCount = new AtomicInteger(); + AtomicReference internalVisualEngine = new AtomicReference<>(visualValidationEngine); + List> attachments = new ArrayList<>(); + + try { + new SynchronizationManager(driver).fluentWait(true).until(f -> { + //https://github.com/assertthat/selenium-shutterbug/issues/105 + if (Properties.web.targetBrowserName().equalsIgnoreCase(Browser.SAFARI.browserName())) { + internalVisualEngine.set(ValidationEnums.VisualValidationEngine.EXACT_OPENCV); + } + + // get reference image + byte[] referenceImage = ImageProcessingActions.getReferenceImage(locator); + if (!Arrays.equals(new byte[0], referenceImage)) { + ReportManagerHelper.logDiscrete("Reference image found.", Level.INFO); + List expectedValueAttachment = Arrays.asList("Validation Test Data", "Reference Screenshot", + referenceImage); + attachments.add(expectedValueAttachment); + } else { + ReportManagerHelper.logDiscrete("Reference image not found, attempting to capture new reference.", Level.INFO); + } + + // get actual screenshot + byte[] elementScreenshot; + Boolean actualResult; + + elementScreenshot = driver.findElement(locator).getScreenshotAs(OutputType.BYTES); + actualResult = ImageProcessingActions.compareAgainstBaseline(driver, locator, elementScreenshot, ImageProcessingActions.VisualValidationEngine.valueOf(visualValidationEngine.name())); + + List actualValueAttachment = Arrays.asList("Validation Test Data", "Actual Screenshot", + elementScreenshot); + attachments.add(actualValueAttachment); + + // compare actual and reference screenshots + if (visualValidationEngine.equals(ValidationEnums.VisualValidationEngine.EXACT_SHUTTERBUG) && !actualResult) { + //if shutterbug and failed, get differences screenshot + byte[] shutterbugDifferencesImage = ImageProcessingActions.getShutterbugDifferencesImage(locator); + if (!Arrays.equals(new byte[0], shutterbugDifferencesImage)) { + List differencesAttachment = Arrays.asList("Validation Test Data", "Differences", + shutterbugDifferencesImage); + attachments.add(differencesAttachment); + } + } + + // if found set value to 1, else set value to zero + elementCount.set(actualResult?1:0); + + expected.set(validation.getValue()); + actual.set(actualResult); + // force validation type to be positive since the expected and actual values have been adjusted already + validationState.set(performValidation(expected.get(), actual.get(), ValidationEnums.ValidationComparisonType.EQUALS, ValidationEnums.ValidationType.POSITIVE)); + return validationState.get(); + }); + } catch (TimeoutException timeoutException) { + //timeout was exhausted and the validation failed + } + //reporting block + List parameters = new ArrayList<>(); + parameters.add(new Parameter().setName("Locator").setValue(String.valueOf(locator)).setMode(Parameter.Mode.DEFAULT)); + parameters.add(new Parameter().setName("Should exist").setValue(String.valueOf(expected.get())).setMode(Parameter.Mode.DEFAULT)); + parameters.add(new Parameter().setName("Visual engine").setValue(visualValidationEngine.name()).setMode(Parameter.Mode.DEFAULT)); + parameters.add(new Parameter().setName("Actual value").setValue(String.valueOf(actual.get())).setMode(Parameter.Mode.DEFAULT)); + Allure.getLifecycle().updateStep(stepResult -> stepResult.setParameters(parameters)); + // force take page screenshot, (rather than element highlighted screenshot) + reportValidationState(validationState.get(), expected, actual, driver, elementCount.get() == 0 ? null : locator, attachments); } private boolean performValidation(Object expected, Object actual, @@ -264,12 +344,15 @@ private boolean performValidation(Object expected, Object actual, return validationState; } - private void reportValidationState(boolean validationState, Object expected, Object actual, WebDriver driver, By locator) { - List> attachments = new ArrayList<>(); + private void reportValidationState(boolean validationState, Object expected, Object actual, WebDriver driver, By locator, List> attachments) { + //initialize attachments object if no attachments were already prepared + attachments = attachments == null ? new ArrayList<>() : attachments; + // prepare WebDriver attachments if (driver != null) { // prepare screenshot with element highlighting - attachments.add(new ScreenshotManager().takeScreenshot(driver, locator, this.validationCategoryString, validationState)); + if (attachments.isEmpty()) + attachments.add(new ScreenshotManager().takeScreenshot(driver, locator, this.validationCategoryString, validationState)); // prepare page snapshot mhtml/html var whenToTakePageSourceSnapshot = SHAFT.Properties.visuals.whenToTakePageSourceSnapshot().toLowerCase(); if (Boolean.FALSE.equals(validationState) diff --git a/src/test/java/testPackage/mockedTests/MultipleElementsFailureTest.java b/src/test/java/testPackage/mockedTests/MultipleElementsFailureTest.java index 86ce20b2944..80155a55025 100644 --- a/src/test/java/testPackage/mockedTests/MultipleElementsFailureTest.java +++ b/src/test/java/testPackage/mockedTests/MultipleElementsFailureTest.java @@ -24,7 +24,7 @@ public void click() { driver.get().element().click(By.xpath("//input")); } - @Test(expectedExceptions = {AssertionError.class}) + @Test(expectedExceptions = {RuntimeException.class}) public void clickUsingJS() { driver.get().browser().navigateToURL(mockedHTML); driver.get().element().clickUsingJavascript(By.xpath("//input")); diff --git a/src/test/java/testPackage/mockedTests/NoSuchElementFailureTest.java b/src/test/java/testPackage/mockedTests/NoSuchElementFailureTest.java index e0d01405746..e56600dbf2e 100644 --- a/src/test/java/testPackage/mockedTests/NoSuchElementFailureTest.java +++ b/src/test/java/testPackage/mockedTests/NoSuchElementFailureTest.java @@ -24,7 +24,7 @@ public void click() { driver.get().element().click(By.xpath("//input[@id='noSuchElement']")); } - @Test(expectedExceptions = {AssertionError.class}) + @Test(expectedExceptions = {RuntimeException.class}) public void clickUsingJS() { driver.get().browser().navigateToURL(mockedHTML); driver.get().element().clickUsingJavascript(By.xpath("//input[@id='noSuchElement']")); diff --git a/src/test/java/testPackage/validationsWizard/VisualValidationTests.java b/src/test/java/testPackage/validationsWizard/VisualValidationTests.java index 6bf39dbe909..283387ca967 100644 --- a/src/test/java/testPackage/validationsWizard/VisualValidationTests.java +++ b/src/test/java/testPackage/validationsWizard/VisualValidationTests.java @@ -10,11 +10,12 @@ import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; -@Test public class VisualValidationTests { +public class VisualValidationTests { protected static final ThreadLocal driver = new ThreadLocal<>(); String firstRunElementReferenceFilePath; By firstRunElement = By.cssSelector("img[alt='SHAFT_Engine']"); + @Test public void visualValidation_1stRun(){ var fileActions = SHAFT.CLI.file(); firstRunElementReferenceFilePath = ScreenshotHelper.getAiAidedElementIdentificationFolderPath()