How to use handleInvalidStateExceptionType method of com.testsigma.automator.actions.ElementAction class

Best Testsigma code snippet using com.testsigma.automator.actions.ElementAction.handleInvalidStateExceptionType

Source:ElementAction.java Github

copy

Full Screen

...147 super.handleException(e);148 if (e instanceof NotFoundException) {149 handleNotFoundExceptionType(e);150 } else if (e instanceof InvalidElementStateException) {151 handleInvalidStateExceptionType(e);152 } else if (e instanceof StaleElementReferenceException) {153 handleStaleElementExceptionType(e);154 } else if (e instanceof UnhandledAlertException) {155 handleUnhandledAlertExceptionType(e);156 } else if (e instanceof JavascriptException) {157 handleJavaScriptException(e);158 } else if (e instanceof UnexpectedTagNameException) {159 handleUnExpectedTagNameException(e);160 } else if (e instanceof AutomatorException) {161 handleAutomatorException(e);162 } else if (e instanceof MoveTargetOutOfBoundsException) {163 handleMoveTargetOutOfBoundException(e);164 } else if (e instanceof NoSuchSessionException) {165 handleNoSuchSessionException(e);166 } else if (e instanceof SessionNotCreatedException || e instanceof UnreachableBrowserException) {167 handleNoSuchSessionException(e);168 }169 }170 private void handleNoSuchSessionException(Exception e) {171 setErrorCode(ErrorCodes.NO_SUCH_SESSION_EXCEPTION);172 setErrorMessage("The browser connection is lost. Either the browser is closed by the user or the connection is terminated.");173 }174 private void handleMoveTargetOutOfBoundException(Exception e) {175 String errorMessage = "The intended element is out of page view range. " +176 "Please scroll and make the element viewable and perform this action/step.";177 setErrorMessage(errorMessage);178 setErrorCode(ErrorCodes.MOVE_TARGET_OUT_OF_BOUND_EXCEPTION);179 }180 private void handleUnExpectedTagNameException(Exception e) {181 String errorMessage = e.getMessage().substring(0, e.getMessage().indexOf("\n"));182 errorMessage = (errorMessage != null) ? errorMessage : "Given locator/testdata is not pointing to an expected element type.";183 setErrorMessage(errorMessage);184 setErrorCode(ErrorCodes.UNEXPECTED_TAG_NAME_EXCEPTION);185 }186 private void handleJavaScriptException(Exception e) {187 setErrorMessage("Unable to execute Javascript - " + e.getMessage());188 setErrorCode(ErrorCodes.JAVA_SCRIPT_EXCEPTION);189 }190 private void handleAutomatorException(Exception e) {191 if (e instanceof ElementNotDisplayedException) {192 setErrorMessage(e.getMessage());193 setErrorCode(ErrorCodes.ELEMENT_NOT_DISPLAYED);194 } else {195 setErrorMessage(e.getMessage());196 setErrorCode(ErrorCodes.AUTOMATOR_EXCEPTION);197 }198 }199 private void handleUnhandledAlertExceptionType(Exception e) {200 //There are no sub types of this exception.201 String errorMessage = "There is an unhandled Alert in this page which is obstructing actions on the page/element. Alert Text:\"%s\"";202 String alertText = ((UnhandledAlertException) e).getAlertText();203 if (alertText == null) {204 alertText = e.getMessage();205 alertText = alertText.substring(alertText.indexOf("{") + 1, alertText.indexOf("}"));206 alertText = alertText.substring(alertText.indexOf(":") + 1);207 }208 setErrorMessage(String.format(errorMessage, alertText));209 setErrorCode(ErrorCodes.UNHANDLED_ALERT_EXCEPTION);210 }211 private void handleStaleElementExceptionType(Exception e) {212 if (elementSearchCriteria != null) {213 String errorMessage = "The element with locator <b>\"%s:%s\"</b> is removed and currently not present in the page due to dynamic updates on the element or the " +214 "page.-<a class=\"text-link\" href = \"https://support.testsigma.com/support/solutions/articles/32000024739-most-common-issues-caused-when-using-elements#problem7\" " +215 "target=\"_blank\">https://support.testsigma.com/support/solutions/articles/32000024739-most-common-issues-caused-when-using-elements#problem7</a>";216 setErrorMessage(String.format(errorMessage, elementSearchCriteria.getFindByType(), elementSearchCriteria.getByValue()));217 } else {218 String errorMessage = "The element state matching with given criteria is changed due to dynamic updates on the element or the " +219 "page. For more details, please visit below documentation.<br>-<a class=\"text-link\" href = \"https://support.testsigma.com/support/solutions/articles/32000024739-most-common-issues-caused-when-using-elements#problem7\" " +220 "target=\"_blank\">https://support.testsigma.com/support/solutions/articles/32000024739-most-common-issues-caused-when-using-elements#problem7</a>";221 setErrorMessage(errorMessage);222 }223 setErrorCode(ErrorCodes.STALE_ELEMENT_EXCEPTION);224 }225 private void handleInvalidStateExceptionType(Exception e) {226 if (e instanceof ElementNotVisibleException) {227 String errorMessage;228 if (elementSearchCriteria != null) {229 errorMessage = String.format("Element may be present but not visible in current page. Please verify if the " +230 "element <b>\"%s:%s\"</b> is pointing to a displayed element.", elementSearchCriteria.getFindByType(), elementSearchCriteria.getByValue());231 } else {232 errorMessage = "Element may be present but not visible in current page. Please verify the given element criteria is pointing to a displayed/visible element.";233 }234 setErrorMessage(errorMessage);235 setErrorCode(ErrorCodes.ELEMENT_NOT_VISIBLE);236 } else if (e instanceof ElementClickInterceptedException) {237 String errorMessage = "Element may be present but unable to perform action. The element may be overlapped " +238 "or obscured by some other page element such as a Dialog box or an Alert.<br>" +239 "If the element is not in view, please try executing step <b>\"Scroll to the element ELEMENT into view\"</b></b>";...

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful