新手学习selenium路线图

最近群里有很多小白,想入手selenium,可是一直没找到学习路线,还没入门就迷路了,因而小编亲手绘制了一幅学习路线图。但愿能帮助小白快速入门,帮助已经入门的,尽快提高!php

 

学习selenium主要分五个阶段,本身在哪一个层级,能够对号入座下。css

第一阶段:幼儿园   1.选语言:在学习自动化前,先要选一门语言学习,而不是选什么工具,学习selenium,目前最流行的是java和python,至于选哪一个,看本身的爱好了,这里就不说哪一个语言好(php才是最好的语言)。小编是半路出家,没什么语言基础,因此选的python做为自动化入门的脚本语言。html

   2.python:选好语言以后,接下来就是学习基础的语法了,目前市面上python脚本分为2个:python2和python3,区别到不是很大,新手的话建议python2吧,有必定解决问题能力的小伙伴能够直接入手python3java

      3.python基础:选好python版本后,接下来就是python的基础学习了,python的基础教程目前网上有很是成熟的学习教程了,适合新手 的教程小编推荐2个:第一个是廖雪峰的,这个能够说是国内比较成熟的,而且适合小白入门的课程了http://www.liaoxuefeng.com /;另一个网站是python菜鸟教程http://www.runoob.com/python/python-tutorial.html。基础的东西主要包括:print、变量、数据类型、for、if、while这些,这些基本的了解了,差很少就能够上手了。python

      4.selenium:接下来就是学习selenium了,selenium目前有三个版:selenium1也就是selenium RC这个已经很古老了,不用浪费时间去研究了;而后是selenium2,这个是目前最流行的了;最近出的selenium3,其实selenium2区别不大,主要是启动firefox会遇到两个坑,刚入手的小白估计踩到坑里就爬不起来了。试下一下,好不容易环境搭建好了,结果启动firefox报错,简直就是当面一盆子冷水泼过来。好不容易解决完前面的一个坑,而后又有第二坑。因此小白入手selenium推荐selenium2git

 

第二阶段:小学 api

5.selenium API:不少小伙伴学习自动化喜欢先用录制的工具,学自动化录制是  最不靠谱的,举个简单例子:若是一个元素的id是动态的,你此次录制好了,回放时候,元素id已经变了,这时候无论你怎么回放都是不成功的。因此录制这玩意,了解下原理就能够了,不用花时间去研究。学习selenium,咱们直接去看api文档就行。浏览器

 

   6.元素定位:selenium提供了八种元素定位:id、name、class、tag、link、patail_link、xpath、css.对于元素定位不太懂的这个时候须要用到firepath和firebug来辅助定位,这时候就须要补充下html的知识了,对html越熟悉,你定位元素越快。先是经过简单的元素属性定位,后来你发现有些元素的属性没有,或者不少重复,被咱们的开发同窗不规范的代码坑的不要不要的,这时候就得学xpath了框架

      7.xpath:xpath定位基本上能够解决80%的元素定位问题,但也不是万能的,不少小伙伴刚接触时候,简直就是当成宝。xpath能够当作定位界的宝刀屠龙,虽然威力大,可是比较笨重,定位元素慢,语法很长,还不稳定,也是被坑的不要不要的,这时候有必要去学习下css了svn

 

第三阶段:中学

   8.css:css定位速度快,稳准狠,定位界的倚天剑,轻巧,语法简洁。但也不是万能的,有些模糊匹配的地方,仍是得靠xpath大哥来搞定

   9.操做元素:定位好元素以后接下来就是操做元素了,主要有困难的是鼠标事件和键盘事件

   10.判断元素:操做完后,就是获取返回结果了,或者是判断元素是否是指望结果

   11.unittest:前面都是简单的操做,没法生产测试用例,是时候找个测试框架帮咱们运行用例了,因而就依靠unittest

   12.测试报告:用例执行完以后,总得有个测报告吧,这时候须要用到html的测试报告

   13.发送邮件:报告生成好以后,我总不能每次去电脑上打开查看吧,是时候学习下自动发送邮件了

 

第三阶段:高中

   14.函数:前面简单的用例搭建好以后,写用例时候,发现每次重复操做更记流水帐同样,这个时候就要学习函数了,把经常使用的方法写成函数调用

   15.类和方法:当函数写多了后,发现很多很方便,能不能把经常使用的操做写到一块,须要哪一个直接调用呢,这时候就得学习类和方法了

   16.参数化:用例优化的差很少时候,发现测试数据想改下,找起来好麻烦,因而想到把测试数据分离出来,用到参数化

   17.数据驱动:参数化后,紧接着就是数据驱动啦,用例写好后,仅需维护测试数据就能够了

 

第四阶段:大学

  18.封装:经常使用的方法已经很是熟练了,这时候须要封装了

  19.jenkins:当用例写的差很少后,最后确定是但愿能一键执行,这时候,须要用到jenkins来作持续集成

 

  20.代码仓库:多人一块儿作自动化项目时候,这时候须要代码同步,因而会遇到svn、git工具

 

 

第五阶段:研究生

  21.js:前面selenium东西学完以后,发现不少场景是selenium没法完成的,好比浏览器的滚动条,这时候须要学js啦。。。

  22.学无止境:接下来要看我的的研究方向了,学无止境。。。

 那么问题来了:这么多东西,如何下手呢?