Best Python code snippet using robotframework-appiumlibrary_python
runonfailure.py
Source:runonfailure.py
...32 return method(*args, **kwargs)33 except Exception, err:34 self = args[0]35 if self._selenium and not hasattr(err, '_selib_ran_on_failure'):36 self._run_on_failure()37 err._selib_ran_on_failure = True38 raise39class RunOnFailure(object):40 if decorator:41 __metaclass__ = runonfailuretype42 _run_on_failure = _do_nothing_on_failure = lambda self: None43 def register_keyword_to_run_on_failure(self, keyword_name):44 """Sets the keyword to execute when a SeleniumLibrary keyword fails.45 `keyword_name` is the name of a SeleniumLibrary keyword that46 will be executed if another SeleniumLibrary keyword fails.47 It is not possible to use a keyword that requires arguments.48 The name is case but not space sensitive. If the name does49 not match any keyword, this functionality is disabled and50 nothing extra will be done in case of a failure.51 The initial keyword to use is set in `importing`, and the52 keyword that is used by default is `Capture Screenshot`.53 Taking a screenshot when something failed is a very useful54 feature, but notice that it can slow down the execution.55 This keyword returns the name of the previously registered56 failure keyword. It can be used to restore the original57 value later.58 Examples:59 | Register Keyword To Run On Failure | Log Source | # Run `Log Source` on failure. |60 | ${previous kw}= | Register Keyword To Run On Failure | Nothing | # Disables run-on-failure functionality and stores the previous kw name in a variable. |61 | Register Keyword To Run On Failure | ${previous kw} | # Restore to the previous keyword. |62 The whole run-on-failure functionality is new in SeleniumLibrary 2.5.63 It only works when running tests on Python/Jython 2.4 or newer and64 it does not work on IronPython at all.65 """66 old = self._get_run_on_failure_name()67 self._set_run_on_failure(keyword_name)68 self._log_run_on_failure()69 return old70 def _set_run_on_failure(self, keyword_name):71 name = keyword_name.replace(' ', '_').lower()72 self._run_on_failure = getattr(self, name, self._do_nothing_on_failure)73 def _get_run_on_failure_name(self):74 if not self._run_on_failure_is_set():75 return 'No keyword'76 return self._run_on_failure.__name__.replace('_', ' ').title()77 def _run_on_failure_is_set(self):78 return self._run_on_failure != self._do_nothing_on_failure79 def _log_run_on_failure(self):80 self._info('%s will be run on failure.'...
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.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!