selenium还是比较容易看懂的,只要肯用心,首先你要学会元素定位,看懂元素定位这一系列的操作,不想很费劲的去看懂就先去学习学习HTML5吧,selenium库主要还是用于定位HTML界面相关的,不敢说全部,最起码元素定位这一块懂点的更容易学习后面的知识。
目录
前言废话也不多,本章主要回顾一下前几篇,总结一下所学所想所感。学习每一章的知识还请点击标题的超链接,本章与诸君划水。
元素定位
学会元素定位太重要了,虽然元素定位的方法有很多,元素定位、元素组定位,js定位,还有jQuery。这其中还是有一定的相通之处的。当然也是各有所长,定位的时候有id优先使用id等单个标签,其次是元素组,元素组在没有单个元素标签且有多个相同的元素标签的情况下使用,采用列表索引取值的方式进行定位。
元素定位还没学会,不精通的不建议看后续的内容了,看了到头来还是需要回到元素定位这个维度上来了,所以,你,,,不学也不行,学不会也不行,你必须懂!!!
下拉框
下拉框不管是网页还APP,都会经常看到,网页端的下拉框也有很多的去别,有些只能点击才能看得到,有些只能鼠标放上去才能看到,至于前者这个方法还是比较合适,后者的话,后续看鼠标键盘操作,有详细的介绍到,具体怎么回事。
时间等待
在定位过程中,没有这一步,你会遇到元素定位超时或者定位不到元素这类的报错。
注:即使有这一步,你故意写错那也是会报这一类的错误
这一步在正确的定位方法内,配合时间上的等待,等待网页中的元素加载出来,就可以直接点击了,有必须要等待多长时间的方法,有只需要检测到这一类的元素就直接点击的方法,也有可以结合其他的方法做一系列判断的方法,还是挺丰富的。
基本操作
这一操作主要是调试的时候用,有好处也有弊端,毕竟凡事都有好坏嘛,调试还是 比较方便的,可以不看界面,自己在后台跑,这一步装逼还是可以很到位的,遇见大哥了也没啥可以的了,也是必须掌握的技能之一。
窗口操作
窗口操作必须技能之一,没有这一步操作,有很多的窗口进不去,比如登录窗口,或者搜索内容的时候,打开了新的窗口,有时候不切换是定位不到元素的。
这里为什么说是有时候呢,因为确实有些没要,具体的根据写代码的时候报错提示来进行更改。这个操作我个人觉得使用率挺高。
鼠标键盘
这一操作上面有提到过,经常浏览网页的你会很容易发现,有很多的下拉框都是鼠标放上去就会有,鼠标点击都没用,这个时候就是用到这个操作的时候了,可以控制鼠标随随便便的移动,甚至在淘宝里面可你滑动半天的滚筒条才能到底部,这个操作一秒就能办到。
JS定位
这个定位方式开头已经提过了,此方法可以把很多的不可见元素变成可见的,不可写的输入框变成刻写的,超级方便,也非常好玩,就是写起来比较麻烦,个人观点,不喜勿喷!
unittest
这个主要用于集成测试,你可以把你的操作全部写在里面,然后统一执行测试操作,就不需要自己一步步执行,这样也没有效率可言,也不方便查看。unittest可以把执行结果变成测试报告输出。
数据驱动
数据驱动,可以用于干很多的事情,本章我举例的用来测试登录,还是挺方便的,准备好数据,写点代码,半小时的工作,十分钟不需要就能搞定。
结语
自动化是不可以代替手工测试的,手工测试可以多角度的去测试,测试维度随时可以改变,自动化却不能,自动化可以用于重复性的操作,还是十分的便捷的。对于做测试的朋友,在一定程度上还是有很大的帮助的。
切勿拿自动化与手工测试做过多的比较,各有所长,各有缩短,从某种程度上讲,自动化测试不仅仅是测试。
最后给大家一点点提示可以改进前面的unittest框架的方式,仅供参考,每个人的写法不一,只要好维护、好用就行。
class P_search(Brouser): #继承
id_1 = (By.ID,'search-input')
value = '淘宝'
def __init__(self,fox):
"""需要什么参数就传什么参数"""
self.fox = fox
def searchInput(self):
# self.fox.find_element(*P_search.id_1).send_keys(P_search.value)
self.send_keys(P_search.id_1,P_search.value)
def clickSearchButton(self):
# self.fox.find_element(*P_search.xpth_1).click()
self.click_my(P_search.xpth_1)
注释的地方是定位的方法,这里我把元素定位写了一个类以及一些判断操作等,测试一个类,这里的就是点击,输入内容的类了。