日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

PageFactory設計模式基于python實現

瀏覽:29日期: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 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产欧美激情| 午夜在线精品偷拍| 在线日韩成人| 亚洲免费在线| 久久亚洲电影| 蜜芽一区二区三区| 亚洲精品一二三**| 日欧美一区二区| 亚洲精品欧美| 日韩精品免费视频一区二区三区 | 国产精品免费99久久久| 国产极品一区| 成人台湾亚洲精品一区二区| 国产一区二区三区免费在线| 中文一区一区三区高中清不卡免费| 欧美国产日韩电影| 精品资源在线| 久久一级电影| 99国产精品私拍| 在线精品一区二区| 国产日韩免费| 欧美日韩国产v| 欧洲激情综合| 中文一区一区三区免费在线观 | 视频一区二区三区中文字幕| 91免费精品国偷自产在线在线| 欧美经典一区| 久久蜜桃精品| 亚洲欧美在线专区| 精品视频免费| 久久久久蜜桃| 日韩高清三区| 久久男人天堂| 亚洲我射av| 日本久久黄色| 亚洲精品一二三**| 国产 日韩 欧美一区| 日韩中文字幕区一区有砖一区| 欧美亚洲免费| 久久精品国产亚洲夜色av网站| 日韩视频免费| 国产欧美日韩影院| 国产白浆在线免费观看| 欧美成人基地 | 美女久久久久久| 色乱码一区二区三区网站| 欧美日韩在线观看首页| 婷婷久久一区| 日韩国产在线观看一区| 久久免费福利| japanese国产精品| 伊人久久大香伊蕉在人线观看热v| 日韩在线成人| 国际精品欧美精品| 日本国产精品| 亚洲精选91| 美女久久99| 午夜久久久久| 国产精品色在线网站| 水蜜桃精品av一区二区| 亚洲精品大片| 国产aa精品| 麻豆91精品| 国产成人精品999在线观看| 久久精品国产www456c0m| 午夜天堂精品久久久久| 久久精品一本| 欧美日韩精品一本二本三本| 欧美伊人影院| 青青青免费在线视频| 蜜臀精品久久久久久蜜臀| 国产精品成人国产| 日韩亚洲精品在线| 久久尤物视频| | 蜜臀国产一区二区三区在线播放 | 亚洲青青久久| 欧美gv在线| 欧美日韩夜夜| 午夜日本精品| 国产激情在线播放| 综合色一区二区| 亚洲播播91| 欧美亚洲国产日韩| 久久久精品午夜少妇| 日韩精品视频在线看| 999在线观看精品免费不卡网站| 国产精品久久久久久妇女| 午夜国产精品视频免费体验区| 麻豆久久久久久| 日韩精品午夜视频| 99视频一区| 日韩在线二区| 久久久久伊人| 久久黄色影视| 亚洲v天堂v手机在线| 超碰成人av| 免费日韩一区二区三区| 免费观看在线色综合| 欧美日韩在线观看首页| 精品久久免费| 国产另类在线| 日韩一区二区三区在线看| 国产婷婷精品| 久久国产亚洲精品| 国产一区福利| 国产另类在线| 青青国产精品| 日韩av中文字幕一区二区三区| 午夜在线观看免费一区| 亚洲夜间福利| 国产专区精品| 精品欧美视频| 国产精品久久乐| 亚洲香蕉视频| 九九久久电影| 精品亚洲美女网站| 日本在线精品| 日韩一区亚洲二区| 精品国产aⅴ| 日韩av一区二| 日本国产一区| 欧美另类中文字幕 | 日本高清久久| 久久亚洲二区| 亚洲精品综合| 免费日韩av片| 日韩一区精品字幕| 蜜桃av一区二区三区电影| 国产农村妇女精品一二区| 性一交一乱一区二区洋洋av| 亚洲精品2区| 久久av在线| 亚洲主播在线| 亚洲视频电影在线| 日韩极品在线观看| 久久国产欧美日韩精品| 国产精品色婷婷在线观看| 国产精品亚洲人成在99www| 亚洲精品少妇| 日韩高清中文字幕一区| 日韩一区二区三区精品视频第3页| av成人国产| 亚洲午夜免费| 欧美日韩一区二区三区四区在线观看| 欧美日韩一区二区三区不卡视频 | 五月婷婷六月综合| 蜜桃一区二区三区在线| 亚洲精品免费观看| 国产精品午夜一区二区三区| 麻豆精品在线观看| 日韩精品久久久久久久电影99爱 | 亚洲尤物在线| 亚洲日本三级| 欧美黄色一区二区| 国产盗摄——sm在线视频| 999国产精品| 亚洲免费婷婷| 国产欧美视频在线| 另类中文字幕国产精品| 午夜亚洲福利在线老司机| 日本成人在线不卡视频| 欧美激情91| 桃色一区二区| 久久亚洲风情| 国产精品激情| 丁香六月综合| 国产视频一区三区| 国产亚洲字幕| 日韩电影免费网站| 亚洲精品福利| 高清一区二区| 亚洲精品小说| 国产精品欧美一区二区三区不卡| 精品一区91| av不卡在线| 国产精品白丝一区二区三区| 亚洲a一区二区三区| 亚洲精品看片| 电影亚洲精品噜噜在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产日韩视频| 国产黄大片在线观看| 在线精品视频一区| 国产精品免费不| 9国产精品视频| 麻豆精品在线观看| 久久av一区二区三区| 国产自产自拍视频在线观看| 婷婷视频一区二区三区| 久久精品青草| 久久国产人妖系列| 亚洲精品一区二区在线看| 国产日韩在线观看视频| 久久精品一区二区不卡| 97精品久久| 伊人久久大香线蕉av超碰演员| 亚洲精品影院在线观看| 亚洲伦乱视频| 精品美女久久|