成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

PageFactory設計模式基于python實現

瀏覽:4日期:2022-07-30 09:37:43

前言

pageFactory的設計模式能在java里執行的原因是java自帶了PageFactory類,而在python中沒有這樣的包,但是已經有人寫好了pageFactory在python的包,可以拿來用

pageFactory 用于python支持的py文件

__all__ = [’cacheable’, ’callable_find_by’, ’property_find_by’]def cacheable_decorator(lookup): def func(self): if not hasattr(self, ’_elements_cache’): self._elements_cache = {} # {callable_id: element(s)} cache = self._elements_cache key = id(lookup) if key not in cache: cache[key] = lookup(self) return cache[key] return funccacheable = cacheable_decorator_strategy_kwargs = [’id_’, ’xpath’, ’link_text’, ’partial_link_text’, ’name’, ’tag_name’, ’class_name’, ’css_selector’]def _callable_find_by(how, using, multiple, cacheable, context, driver_attr, **kwargs): def func(self): # context - driver or a certain element if context: ctx = context() if callable(context) else context.__get__(self) # or property else: ctx = getattr(self, driver_attr) # ’how’ AND ’using’ take precedence over keyword arguments if how and using: lookup = ctx.find_elements if multiple else ctx.find_element return lookup(how, using) if len(kwargs) != 1 or list(kwargs.keys())[0] not in _strategy_kwargs: raise ValueError('If ’how’ AND ’using’ are not specified, one and only one of the following ''valid keyword arguments should be provided: %s.' % _strategy_kwargs) key = list(kwargs.keys())[0]; value = kwargs[key] suffix = key[:-1] if key.endswith(’_’) else key # find_element(s)_by_xxx prefix = ’find_elements_by’ if multiple else ’find_element_by’ lookup = getattr(ctx, ’%s_%s’ % (prefix, suffix)) return lookup(value) return cacheable_decorator(func) if cacheable else funcdef callable_find_by(how=None, using=None, multiple=False, cacheable=False, context=None, driver_attr=’_driver’, **kwargs): return _callable_find_by(how, using, multiple, cacheable, context, driver_attr, **kwargs)def property_find_by(how=None, using=None, multiple=False, cacheable=False, context=None, driver_attr=’_driver’, **kwargs): return property(_callable_find_by(how, using, multiple, cacheable, context, driver_attr, **kwargs))

調用的例子

from pageobject_support import callable_find_by as byfrom selenium import webdriverfrom time import sleepclass BaiduSearchPage(object): def __init__(self, driver): self._driver = driver #初始化瀏覽器的api search_box = by(id_='kw') search_button = by(id_=’su’) def search(self, keywords): self.search_box().clear() self.search_box().send_keys(keywords) self.search_button().click()

支持的定位api

id_ (為避免與內置的關鍵字ID沖突,所以多了個下劃線的后綴) name class_name css_selector tag_name xpath link_text partial_link_text

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
欧美激情第六页| 亚洲第一区色| 国产一在线精品一区在线观看| 欧美不卡在线视频| 国产精品88av| 加勒比av一区二区| 奇米四色…亚洲| 午夜精品久久久久久久| 福利一区二区在线| 成人高清伦理免费影院在线观看| 亚洲天堂男人| 日韩一二三四区| 日本一区二区在线不卡| 久久精品国产精品青草| 欧美日韩天堂| 国产伦精品一区二区三区免费| 在线亚洲精品| 老妇喷水一区二区三区| 亚洲日本电影在线| 精品成人私密视频| 伊人成人在线视频| 欧美aa在线视频| 日韩不卡一区二区三区| 国产成人免费视频网站高清观看视频| 午夜精品剧场| 牛牛国产精品| 国产精品观看| 一区二区av| 精品久久五月天| 国产成人免费网站| 日韩女优av电影| 久久精品国内一区二区三区| 欧美日本不卡高清| 欧美日韩大陆在线| 欧美日韩国产综合草草| 欧美日韩不卡一区| 欧美午夜精品久久久久久孕妇| 欧美日韩一区二区电影| 国产精品国产三级国产三级人妇 | 日韩精品1区2区3区| 亚洲女女做受ⅹxx高潮| 亚洲看片一区| 午夜久久久久久久久久一区二区| 91国在线观看| 久久国产精品第一页| 欧美精品丝袜中出| gogogo免费视频观看亚洲一| 国产亚洲精品中文字幕| 在线观看日韩av电影| 亚洲午夜av在线| 老司机午夜免费精品视频| 六月丁香综合在线视频| 日韩丝袜情趣美女图片| 99综合影院在线| 中文字幕五月欧美| 免费日韩av片| 久色婷婷小香蕉久久| 精品国产乱码久久久久久浪潮| 欧美日韩国产综合在线| 亚洲午夜精品17c| 欧美视频日韩| 一区二区三区中文字幕精品精品 | 亚洲午夜一区二区三区| 在线日韩国产精品| thepron国产精品| 欧美综合在线视频| 成人av免费在线播放| 国产精品国产三级国产a| 亚洲日本视频| 首页综合国产亚洲丝袜| 91精品国产色综合久久| 欧美国内亚洲| 亚洲一区二区三区在线播放| 欧美日韩精品欧美日韩精品一| 91亚洲精品久久久蜜桃| 一区二区三区日韩欧美| 在线观看日韩精品| 成人午夜av电影| 最新欧美精品一区二区三区| 老司机午夜精品视频| 91麻豆福利精品推荐| 亚洲国产aⅴ成人精品无吗| 日韩一区二区三区在线观看| 午夜精品视频在线观看一区二区| 亚洲国产日韩av| 91精品国产91久久久久久最新毛片| 91麻豆精品在线观看| 亚洲第一福利一区| 欧美一卡二卡三卡| 亚洲欧洲一区二区天堂久久| 国产一区二区调教| 一区精品在线播放| 正在播放亚洲一区| 激情综合视频| 久久国产夜色精品鲁鲁99| 国产精品毛片久久久久久久| 欧美丝袜丝交足nylons| 欧美日韩在线播放一区二区| 免费一级片91| 国产欧美一区二区三区网站| 欧美私人免费视频| 亚洲激情二区| 成人午夜视频在线观看| 亚洲1区2区3区视频| 国产视频一区在线观看| 欧美在线观看一二区| 在线成人www免费观看视频| 激情综合五月婷婷| 亚洲精品久久久蜜桃| 日韩女优电影在线观看| 麻豆成人av| 国产精品yjizz| 国产成人av电影免费在线观看| 一区二区三区久久| 日韩视频免费观看高清在线视频| 一区二区三区精品视频在线观看| 国产成人精品免费一区二区| 午夜视频一区在线观看| 国产女人18毛片水真多成人如厕| 欧美在线播放高清精品| 在线观看欧美亚洲| 成人免费毛片app| 青青草成人在线观看| 亚洲欧洲在线观看av| 日韩一区二区中文字幕| 国产精品免费区二区三区观看| 欧美jjzz| 韩国女主播成人在线| 亚洲在线免费播放| 国产视频亚洲色图| 欧美日韩国产经典色站一区二区三区 | 一本到三区不卡视频| 色综合久久综合网| 国产精品一区二区在线观看不卡| 一片黄亚洲嫩模| 欧美videos大乳护士334| 欧美日韩中文精品| 国产亚洲欧美一区二区| 女人香蕉久久**毛片精品| 国产精品一区在线观看乱码 | 从欧美一区二区三区| 久久99国产精品免费| 亚洲国产另类精品专区| 自拍偷自拍亚洲精品播放| 26uuu精品一区二区三区四区在线| 欧美三级乱人伦电影| 麻豆成人在线| 亚洲色图自拍| 伊人影院久久| 欧美在线黄色| 成人精品一区二区三区四区| 精品一区中文字幕| 日韩精品一二区| 亚洲综合在线视频| 国产精品美日韩| 国产午夜一区二区三区| 日韩一级大片在线| 欧美一区二区三区婷婷月色| 欧美做爰猛烈大尺度电影无法无天| 亚洲深夜av| 亚洲激情一区二区| 欧美三级黄美女| 欧美一区国产在线| 99久免费精品视频在线观看| 韩国午夜理伦三级不卡影院| 美国三级日本三级久久99| 日韩国产欧美一区二区三区| 亚洲一区在线视频| 亚洲精品免费在线| 中文字幕一区二区三区四区不卡 | 日韩精品乱码免费| 日韩国产欧美在线视频| 亚洲成人av电影在线| 亚洲一二三区不卡| 亚洲一线二线三线久久久| 国产精品女主播在线观看| 国产人妖乱国产精品人妖| 久久久午夜电影| 久久一日本道色综合| 精品国产一区二区国模嫣然| 日韩小视频在线观看专区| 日韩一级二级三级| 欧美一级高清片| 宅男在线国产精品| 91麻豆精品国产91久久久久久 | 黑丝一区二区三区| 欧美日韩专区| 国产在线视频欧美一区二区三区| 国产精品v欧美精品v日本精品动漫| 欧美日韩在线高清| 伊人狠狠色j香婷婷综合| 极品少妇一区二区三区| 国产精品国产三级国产专区53| 欧美在线网站| 国产精品av久久久久久麻豆网| 欧美精品首页| 国产精品v欧美精品v日韩 | 97久久超碰精品国产| 99麻豆久久久国产精品免费 | 久久久久网址|