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

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

Source:ElementAction.java Github

copy

Full Screen

...145 }146 protected void handleException(Exception e) {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>";240 setErrorMessage(errorMessage);241 setErrorCode(ErrorCodes.ELEMENT_CLICK_INTERCEPTED_EXCEPTION);242 } else if (e instanceof ElementNotSelectableException) {243 String errorMessage;244 if (elementSearchCriteria != null) {245 errorMessage = String.format("Element is present but it is not selectable. Please check if the select element " +246 "corresponding to locator <b>\"%s:%s\"</b> is enabled and interactable.", elementSearchCriteria.getFindByType(), elementSearchCriteria.getByValue());247 } else {248 errorMessage = "Element is present but it is not selectable. Please verify if the select element for given criteria is enabled and selectable.";249 }250 setErrorMessage(errorMessage);251 setErrorCode(ErrorCodes.ELEMENT_NOT_SELECTABLE_EXCEPTION);252 } else {253 String errorMessage = "Cannot perform any action on the element. Though element may be present, it is in a non-interactive state.";254 setErrorMessage(errorMessage);255 setErrorCode(ErrorCodes.INVALID_ELEMENT_STATE_EXCEPTION);256 }257 }258 private void handleNotFoundExceptionType(Exception e) {259 if (e instanceof InvalidSelectorException) {260 String errorMessage;261 if (elementSearchCriteria != null) {262 errorMessage = String.format("Unable to find element with locator<b> \"%s:%s\" </b>. Please verify XPATH syntax."263 , elementSearchCriteria.getFindByType(), elementSearchCriteria.getByValue());264 } else {265 errorMessage = "There is no element matching with given criteria/condition. Please verify the given element syntax.";266 }267 setErrorMessage(errorMessage);268 setErrorCode(ErrorCodes.INVALID_SELECTOR);269 } else if (e instanceof NoSuchElementException) {270 String errorMessage;271 if (elementSearchCriteria != null) {272 errorMessage = String.format("Element with locator<b>\"%s:%s\" </b> not found in current page.<br> Please visit below page for more details<br> <a class=\"text-link\"" +...

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