前言:

本来这篇是只在微信公众号(yoyoketang)上发布的,最近一搜,发现本很多人copy(copy公众号的,图片是加载不出来的)了,还没注明出处,不想多说什么,博客上也同步更新这篇吧!

最近群里有不少小白,想入手selenium,但是一直没找到学习路线,还没入门就迷路了,于是小编亲手绘制了一幅学习路线图。希望能帮助小白快速入门,帮助已经入门的,尽快提升!

学习selenium主要分六个阶段,自己在哪个层级,可以对号入座下。

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

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

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

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

第二阶段:小学

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了

第三阶段:中学

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.学无止境:接下来要看个人的研究方向了,学无止境。。。

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

首先给自己定个小目标,先关注个微信公众号:yoyoketang

然后关注个一个神奇的博客:http://www.cnblogs.com/yoyoketang/

啥都有,你懂得!

学习过程中有疑问加seleniumQQ群:646645429

selenium+python高级教程》已出书:selenium webdriver基于Python源码案例

(购买此书送对应PDF版本)

新手学习selenium路线图(老司机亲手绘制)-学前篇的更多相关文章

  1. 新手学习selenium路线图(老司机亲手绘制)-学前篇【转载】

    前言: 本来这篇是只在微信公众号(yoyoketang)上发布的,最近一搜,发现本很多人copy(copy公众号的,图片是加载不出来的)了,还没注明出处,不想多说什么,博客上也同步更新这篇吧! 最近群 ...

  2. 新手学习selenium路线图(老司机亲手绘制)

    前言: 最近群里有不少小白,想入手selenium,但是一直没找到学习路线,还没入门就迷路了,于是小编亲手绘制了一幅学习路线图.希望能帮助小白快速入门,帮助已经入门的,尽快提升! 学习selenium ...

  3. 新手学习web遇到的一些乱码问题

    在新手学习web网站学习的时候经常会遇到?????这种乱码,对于刚起步的菜鸟来说真的很头痛,很容易打击继续学的信心当然了对于菜鸟的我最近也遇到过乱码问题,沉浸其中不能自拔,爱的深啊!!!!!我所遇到的 ...

  4. zz“老司机”成长之路:自动驾驶车辆调试实践

    随着自动驾驶技术的发展,一辆新车从被改装到上路需要经过的调试流程也有了许多提升.今天,我希望结合自己之前的调车经验来跟大家分享一下我们是如何将系统的各个模块逐步上车.调试.集成,进而将一辆“新手”车培 ...

  5. 老司机带你走进Core Animation

    为什么时隔这么久我又回来了呢? 回来圈粉. 开玩笑的,前段时间ipv6被拒啊,超级悲剧的,前后弄了好久,然后需求啊什么的又超多,所以写好的东西也没有时间整理.不过既然我现在回来了,那么这将是一个井喷的 ...

  6. 【Bugly干货分享】老司机教你 “飙” EventBus 3

    Bugly 技术干货系列内容主要涉及移动开发方向,是由 Bugly 邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. EventBus对于Android ...

  7. 优测优社区干货精选|老司机乱谈编辑器之神——vim

    文 / 腾讯 吴双 前言 优测小优 有话说: 腾讯优测只有应用测试大神?不不不,我们还有各种研发大牛! *** vim 是一种信仰,我自从2004年有了这个信仰,已经12个年头了.本文介绍了学习vim ...

  8. 老司机带你用vagrant打造一站式python开发测试环境

      前言 作为一个学习和使用Python的老司机,好像应该经常总结一点东西的,让新司机尽快上路,少走弯路,然后大家一起愉快的玩耍. 今天,咱们就使用vagrant配合xshell打造一站式Python ...

  9. javbus爬虫-老司机你值得拥有

    # 起因 有个朋友叫我帮忙写个爬虫,爬取javbus5上面所有的详情页链接,也就是所有的https://www.javbus5.com/SRS-055这种链接, 我一看,嘿呀,这是司机的活儿啊,我绝对 ...

随机推荐

  1. Fedora下Eclipse/MyEclipse崩溃的解决方案

    Fedora19下使用myeclipse2013时,打开不到一分钟就异常关闭. 默认在home目录下生成一个log文件,里面显示的错误信息,说是libsoup.so文件导致出错.第一个想法是删除这个文 ...

  2. java8 - 4

    import java.io.PrintStream; import java.util.Comparator; import java.util.function.BiFunction; impor ...

  3. python开发学习-day16(Django框架初识)

    s12-20160507-day16 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...

  4. codeforces 354 D. Transferring Pyramid

    D. Transferring Pyramid time limit per test 3 seconds memory limit per test 256 megabytes input stan ...

  5. ab性能测试工具

    Apache自带的压力测试工具——ab初体验 http://studiogang.blog.51cto.com/505887/386852 我们知道压力测试的软件确实很多,诸如微软的WAST,惠普的L ...

  6. 采用Post请求的方式提交参数并导出excel

    一般情况下,我们都是采用get请求的方式导出excel.例如采用如下方式: var exportUrl = '/xxx;'; window.open(exportUrl); 导出excel所需的逻辑参 ...

  7. 20169211《Linux内核原理与分析》 第九周作业

    一.Linux内核虚拟文件系统学习总结 Linux支持各种文件系统,Linux内核通过虚拟文件系统了对各种文件系统共性的进行抽象,并对外提供统一接口,从面向对象编程的角度来看,称为抽象文件系统更为合适 ...

  8. 《Android源码设计模式》--状态模式--责任链模式--解释器模式--命令模式--观察者模式--备忘录模式--迭代器模式

    [状态模式] No1: Wifi设置界面是一个叫做WifiSetting的Fragment实现的 No2: 在不同的状态下对于扫描Wifi这个请求的处理是完全不一样的.在初始状态下扫描请求被直接忽略, ...

  9. My blog in AI ---神经网络,神经元(neural network,nervecell)

    尽管我们有很多经验丰富的软件开发人员,但是利用hard code的方法,要解决一些问题,我们的程序员还是优点捉襟见肘,这些问题包括,识别手写数字照片上的数字:分辨一张彩色照片上是否有一只猫咪:准确理解 ...

  10. 机器学习之路: python k近邻分类器 KNeighborsClassifier 鸢尾花分类预测

    使用python语言 学习k近邻分类器的api 欢迎来到我的git查看源代码: https://github.com/linyi0604/MachineLearning from sklearn.da ...