介绍
这篇文章主要讲解了python如何实现PageFactory设计模式,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
<强>前言强>
PageFactory的设计模式能在java里执行的原因是java自带了PageFactory类,而在python中没有这样的包,但是已经有人写好了PageFactory在python的包,可以拿来用
PageFactory用于python支持的py文件
__all__=[& # 39;缓存# 39;& # 39;callable_find_by& # 39;, & # 39; property_find_by& # 39;】 def cacheable_decorator(查询): def func(自我): 如果不是hasattr(自我,& # 39;_elements_cache& # 39;): 自我。_elements_cache={} # {callable_id:元素(s)} 缓存=self._elements_cache 关键=id(查找) 如果关键不在缓存: 缓存(例子)=查找(自我) 返回缓存(例子) 回归函数 缓存=cacheable_decorator _strategy_kwargs=[& # 39; id_& # 39; & # 39; xpath # 39;, & # 39; link_text& # 39;, & # 39; partial_link_text& # 39;, & # 39;名字# 39;& # 39;tag_name& # 39; & # 39; class_name& # 39;, & # 39; css_selector& # 39; def _callable_find_by(如何使用,多个缓存,上下文,driver_attr, * * kwargs): def func(自我): #上下文-司机或一个特定的元素 如果上下文: ctx=上下文()调用(上下文)其他context.__get__(自我)#或财产 其他: driver_attr ctx=getattr(自我) # & # 39;与# 39;和& # 39;使用# 39;优先于关键字参数 如果和如何使用: 查找=ctx。其他find_elements如果多个ctx.find_element 返回查找(如何使用) 如果len (kwargs) !=1或列表(kwargs.keys())[0]不是_strategy_kwargs: 提高ValueError ( “如果& # 39;与# 39;和& # 39;使用# 39;不指定,从pageobject_support进口callable_find_by> 从硒进口webdriver 从进口睡眠时间 类BaiduSearchPage(对象): def __init__(自我,司机): 自我。司机_driver=#初始化浏览器的api search_box=, (id_=発w") search_button=, (id_=& # 39;苏# 39;) def搜索(自我、关键词): .clear self.search_box () () self.search_box () .send_keys(关键字) .click self.search_button () ()
支持的定位api
- <李> id_(为避免与内置的关键字ID冲突,所以多了个下划线的后缀)李> <李> 李> <李> class_name名字李> <>李css_selector李> <>李tag_name李> <李> xpath李> <>李link_text李> <>李partial_link_text李>
看完上述内容,是不是对python如何实现PageFactory设计模式有进一步的了解,如果还想学习更多内容,欢迎关注行业资讯频道。