TestOps自动化课程之学习第二天
Hello,大家好。又到了清风为大家总结时间了,今天来给大家总结点什么东西呢?在我们上周六开始了自动化班级的第二天上课,而我今天就来给大家分享一下上周六的课程我们学习了什么知识。
先来给大家看下思维导图,简单明了的知道这一天我们学了什么。
从思维导图看起来感觉内容不是很多,但是呢?其实很多隐藏内容是用文字解释不了的。
Selenium元素定位篇
一般来说,在外面大家上课的时候,很多老师讲selenium只是讲这个元素是怎么去操作,怎么去定位的。而我们六道老师就不一样了,他先使用示例让大家明白这个元素是怎么操作的,然后再从源码出来,告诉同学们查找元素在后台是怎么去执行并操作的。下面我们来看下findelement是怎么查找元素的(ById举例):
1. 首先我们进到findElement对象中,发现是返回by的findelement对象(传入的是什么呢?传入的其实就是webdriver对象),那我们再进入by的方法中。
2. 在by类中能看到findelement定义了一个list集合对象(allElements),这个集合做了什么事情呢?做了一个findElements找寻所有元素的事情(且看第三步)。然后做了一个判断返回的元素集合是否不为空,不为空则返回元素集合的第一个元素(因为是findelement)。
3. 在这里去看看findelements是怎么实现的。从下图能看到首先判断context对象(driver对象)是否是FindsById的实现类,在这里满足条件,走到findElementsById方法(传入id),再去看它是如何实现的。
4. 调用findelements方法,传入id类型数据,using为前面传入的id。再看findElements的实现,首先判断id是否为空,为空抛出异常。不为空则创建一个response对象接收执行的结果(execute执行做了什么事情?其实就是发送了一条http协议的请求,把参数作为json数据发送到我们的服务端driverservice,然后服务端根据参数到浏览器上查找元素,并把执行的结果返回回来),取到结果后判断结果是否为空,为空创建空对象。不为空则创建一个allElements集合,把结果转换成allElements集合。转换完成然后进行检查,检查找到的元素是否都是webelement元素,如果是则做强制类型转换为webElement,再放回集合中,最后返回集合(返回第二步)。
清风在这里给大家分享的只能说是六道老师讲解的一小部分,要知道具体讲的内容,还是要参与到我们的课程中。
分享一下六道老师:
六道 : 超过15年的软件测试从业经历;前华为高级测试工程师,互联网公司测试总监;ISTQB注册讲师;美国ASQ协会认证的质量工程师;PMP项目管理专家;测试技术布道者。依托于一切基于实际问题场景并解决实际问题的授课方式,力求穷尽解决学员提出的每一个问题。课程务实,理论知识体系丰富,技术功底扎实,受到学员的一致好评。
小伙伴们,你们还在观望吗?别看了,再看你就跟不上大家了。
我还在这里等着你们,欢迎你们联系我!
我是清风,我为自己代言