一、为何再次封装?
Python一大优势是有丰富的第三方包。可以站在牛人的肩膀上,让编程更简单,功能实现更快,也更完善。但有包还不够,因为包是通用的,普遍的。包含基本功能,或为了普遍性,而给了很多选项。用起来不顺手,或不够简洁。为了更进一步提高效率,就要再次封装。就是依据具体需求,将包重新写,做个性化处理。让工具更顺手,更方便。
二、举例
比如在U2中,有多种方法查找元素。通过text,describtion, id。在实际使用时,如果不封装,就需要写很多重复的代码。比如最多的用文本(text)定位和点击。就得写,d(text=’开始’).click(),经过封装就可以这样写,u.click_(‘开始’)。如果再复杂的,用匹配定位,不封装就更复杂了。而封装后就可以写,u.click_(‘看视频’,contains=True)。具体贴一下我封装的查找方法。
说明:
1、使用了装饰器。
因为自动化工具,在查找不到元素时,往往采用报错的方式来提醒。在实际应用时,每次都写try,来捕捉异常,就有很多重复代码。而装饰器可以很方便,套一个捕捉异常,来减少代码。
2、使用by_which来判定是用什么来定位,timeout确定等待时间,contains确定是否用包含文字来定位。有默认值,可以有效减少代码。
3、优化text。
在手机里有两种文本,一种是text,一种是describtion。刚开始我是分开处理的,后面才想到直接用代码来处理,而不用管是哪种文本。
4、其他针对元素的操作都是基于find这个方法,可以有效减少代码。比如click_。
好了。因为基本完成了代码,只是盯着看哪里有错,做优化,比较闲。所以有空做这个。我会在评论区贴分享的地址。需要请自取。
再次强调:1、代码还不完善,会有错误。2、适合懂python的朋友。3、脚本使用有限制,可去网上寻找其他auto.js的脚本。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/182200.html原文链接:https://javaforall.cn