前言:php
原本這篇是隻在微信公衆號(yoyoketang)上發佈的,最近一搜,發現本不少人copy(copy公衆號的,圖片是加載不出來的)了,還沒註明出處,不想多說什麼,博客上也同步更新這篇吧!css
最近羣裏有很多小白,想入手selenium,可是一直沒找到學習路線,還沒入門就迷路了,因而小編親手繪製了一幅學習路線圖。但願能幫助小白快速入門,幫助已經入門的,儘快提高!html
學習selenium主要分六個階段,本身在哪一個層級,能夠對號入座下。java
第 一階段:幼兒園 1.選語言:在學習自動化前,先要選一門語言學習,而不是選什麼工具,學習selenium,目前最流行的是java和python,至於選哪一個,看本身 的愛好了,這裏就不說哪一個語言好(php纔是最好的語言)。小編是半路出家,沒什麼語言基礎,因此選的python做爲自動化入門的腳本語言。python
2.python:選好語言以後,接下來就是學習基礎的語法了,目前市面上python腳本分爲2個:python2和python3,區別到不是很大,新手的話建議python2吧,有必定解決問題能力的小夥伴能夠直接入手python3git
3.python基礎:選好python版本後,接下來就是python的基礎學習了,python的基礎教程目前網上有很是成熟的學習教程了,適合新手 的教程小編推薦2個:第一個是廖雪峯的,這個能夠說是國內比較成熟的,而且適合小白入門的課程了http://www.liaoxuefeng.com /;另一個網站是python菜鳥教程http://www.runoob.com/python/python-tutorial.html。基礎的東西主要包括:print、變量、數據類型、for、if、while這些,這些基本的瞭解了,差很少就能夠上手了。api
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.學無止境:接下來要看我的的研究方向了,學無止境。。。