Best Python code snippet using robotframework-pageobjects_python
page.py
Source:page.py
...193 elif inspect.ismethod(obj) and not name.startswith("_") and not _Keywords.is_method_excluded(name):194 # Add all methods that don't start with an underscore and were not marked with the195 # @not_keyword decorator.196 if not in_ld:197 keywords += _Keywords.get_robot_aliases(name, self._underscore(self.name))198 else:199 keywords.append(name)200 _Keywords.has_registered_s2l_keywords = True201 return keywords202 def _attempt_screenshot(self):203 try:204 self.capture_page_screenshot()205 except Exception, e:206 if e.message.find("No browser is open") != -1:207 pass208 @not_keyword209 def run_keyword(self, alias, args, kwargs):210 """211 RF Dynamic API hook implementation that maps method aliases to their actual functions.212 :param alias: The alias to look up213 :type alias: str214 :param args: The arguments for the keyword215 :type args: list216 :returns: callable217 """218 # Translate back from Robot Framework alias to actual method219 meth = getattr(self, _Keywords.get_funcname_from_robot_alias(alias, self._underscore(self.name)))220 try:221 ret = meth(*args, **kwargs)222 except:223 # Pass up the stack, so we see complete stack trace in Robot trace logs224 raise225 if isinstance(ret, Page):226 # DCLT-829227 # In Context, we keep track of the currently executing page.228 # That way, when a keyword is run, Robot (specifically, our monkeypatch229 # of Robot's Namespace class - see context.py) will know which library230 # to run a keyword on when there is a conflict.231 # All page object methods should return an instance of Page.232 # Look at the class name of that instance and use it to identify233 # which page object to set Context's pointer to.234 # Get the names of all currently imported libraries235 libnames = Context.get_libraries()236 classname = ret.__class__.__name__237 for name in libnames:238 # If we find a match for the class name, set the pointer in Context.239 if name.split(".")[-1:][0] == classname:240 Context.set_current_page(name)241 # The case of raising an exception if a page object method returns None is handled242 # by Page's meta class, because we need to raise this exception for Robot and243 # outside Robot.244 # If nothing was returned and the method was defined in Selenium2Library,245 # just return self. That way, we exempt Selenium2Library from the "must_return"246 # requirement, but still know what page we're on. (For Selenium2Library keywords247 # that go to another page, we'll just assume we're using the same PO.)248 if ret is None:249 func = meth.__func__250 if meth in Selenium2Library.__dict__.values():251 ret = self252 else:253 for base in Selenium2Library.__bases__:254 if meth.__func__ in base.__dict__.values():255 ret = self256 break257 return ret258 @not_keyword259 def get_keyword_documentation(self, kwname):260 """261 RF Dynamic API hook implementation that exposes keyword documentation to the libdoc tool262 :param kwname: a keyword name263 :return: a documentation string for kwname264 """265 if kwname == '__intro__':266 docstring = self.__doc__ if self.__doc__ else ''267 s2l_link = """\n268 All keywords listed in the Selenium2Library documentation are also available in this Page Object.269 See http://rtomac.github.io/robotframework-selenium2library/doc/Selenium2Library.html270 """271 return docstring + s2l_link272 kw = getattr(self, kwname, None)273 alias = ''274 if kwname in _Keywords._aliases:275 alias = '*Alias: %s*\n\n' % _Keywords.get_robot_aliases(kwname, self._underscore(self.name))[0].replace('_', ' ').title()276 docstring = kw.__doc__ if kw.__doc__ else ''277 docstring = re.sub(r'(wrapper)', r'*\1*', docstring, flags=re.I)278 return alias + docstring279 @not_keyword280 def get_keyword_arguments(self, kwname):281 """282 RF Dynamic API hook implementation that exposes keyword argspecs to the libdoc tool283 :param kwname: a keyword name284 :return: a list of strings describing the argspec285 """286 kw = getattr(self, kwname, None)287 if kw:288 args, varargs, keywords, defaults = inspect.getargspec(kw)289 defaults = dict(zip(args[-len(defaults):], defaults)) if defaults else {}...
snap.py
Source:snap.py
...68 msg = ';'.join('{}'.format(get_pos(m))69 for m in rr.get_motors_list())70 return msg71 @self.app.get('/motors/alias')72 def get_robot_aliases():73 return '/'.join('{}'.format(alias) for alias in rr.get_motors_alias())74 @self.app.get('/motors/set/goto/<motors_position_duration>')75 def set_motors_goto(motors_position_duration):76 """ Allow lot of motors position settings with a single http request77 Be carefull: with lot of motors, it could overlap the GET max78 lentgh of your web browser79 """80 for m_settings in motors_position_duration.split(';'):81 settings = m_settings.split(':')82 rr.set_goto_position_for_motor(settings[0], float(settings[1]), float(settings[2]))83 return 'Done!'84 @self.app.get('/motors/set/registers/<motors_register_value>')85 def set_motors_registers(motors_register_value):86 """ Allow lot of motors register settings with a single http request...
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!!