公开课 上海读书会 0316

陈子昂 for 公开课 · 2019年03月16日 · 最后由 陈子昂 回复于 2019年03月16日 · 2583 次阅读

自动化的使用模式

补明天 0317 的。回顾最近一次讲到如何减少程序代码层级,让错误信息可以提前的 raise 和做一些练习,还有未交作业的可以 github 提交后,把作业反馈过来。

讲述 1 个常用的自动化使用模式,多个元素先存放起来,然后在场景内进行枚举匹配,落地最终项目内表现形式可以用很多种。
起因 自动化原则是先要有个元素,但一般会寻找一个唯一性 element,一旦唯一性的元素被修改的,单个元素匹配这个 case 就失败了,如果 case 是一个关键 case,就是一串多米诺的 case 失败。
当直接定位函数 (元素),元素定位成功可执行,失败无法执行,没有中间可以调整的区域。
例子是拿互联网的,但都一样的,核心思想把定位元素的 Template 或者 NodeName 来多准备几个,但先不放到定位函数内。定位函数去枚举他们。

#例子一:
ele,ele1,ele2 ="id->kw","xpath->//input[@name='name']","xpath->//input[@value=text][1]"
actions ={
    1:ele.split("->")[1], #只是测试代码这样写,实际应该是在exist_scene_ele中处理
    2:ele1.split("->")[1],
    3:ele2.split("->")[1]
}
def exist_scene_ele(var):
    return {
        "scene1":actions.get(1),
        "scene2":actions.get(2),
        "scene3":actions.get(3)
    }.get(var,"not found")
print(exist_scene_ele("scene3"))
print(exist_scene_ele("scene4")) #白字错误not found 
#例子2: 上面3个ele需要使用到
src_ele = "xpath->//input[@name='name']"

while 1:
    if ele == src_ele:
        print("ele ==src_ele")
        break
    elif ele1 == src_ele:
        print("ele1 ==src_ele")
        break
    elif ele2 == src_ele:
        print("ele2 ==src_ele")
        break
#事实上是不用打印类似print("ele2 ==src_ele"),只需要把ele去连接要做的业务就行,比如函数点击。这个时候就需要学习PO模式了。

在看一个例子,都是朴实的代码,问题可以提取测试代码,化繁为简。

src_text ="315大拍卖"
for text in ["315","官网"]:
     res =text in src_text
     if res ==True: #如果找到了跳出去
         break
assert res ==True #这里判断上面结果
print("pass") #assert成功走到这里

其他数据类型也支持。

Python pip install 反馈信息

pip install 反馈信息不一定是对的以及源码安装(同样合适于内网用)
1.pip 安装请先改下载源,因为部分需要依赖很多库的,超时次数过了,导致下载失败重安装有可能也会失败,这个会带来不必要的困扰。
请注意 pip install 和 Pycharm IDE 里不是万能的。

2.例如 Twisted 安装如果遇到问题 C++14 问题,如果你已经安装过 C++ 运行库的,可以忽略,只需要前往这个网站下载(如果没有安装 C++ 运行库,请先安装,因为源码下载安装时一样会失败。)
https://www.lfd.uci.edu/~gohlke/pythonlibs/ 然后网页查询到 Twisted 区域
python3.6 3 和 6 代表大中版本匹配 cp36 就行(python 大部分只需要关注大中版本,其他语言或者库也一样,当只有大中没有小版本,绝大多数情况下只需要关注大版本一致就行)

3.需要关注点 win32 代表 x86 32 位 amd64 代表 64 位 最终选择:Twisted‑18.9.0‑cp36‑cp36m‑win_amd64.whl
.whl 的库代表源码库(平时 pip install 库 建议指向版本,源码安装时下载时就选择了版本了),需要下载到本地后 pip3 install xxx 完整的 whl 名字 注意如果安装包地方需要到绝对路径,如果你已经 cd 到对应路径上就不需要

安利煎饼哥的推荐题目

github 题目链接 支持 python 练手。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 1 条回复 时间 点赞

例子是非 OOP 的,但读书会上面强调过的,代码写起来一定要有类,构造器,类变量,成员函数,局部变量。严格按照面向对象来。如果不写面向对象,时间久了,会坑死自己的。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册