Node.js結合selenium做web自動化測試第三課

又過了一天,又見面了,今天Node.js結合selenium做web自動化測試的第三課,我們來嘗試從0創建一個自動化腳本,怎么樣,有沒有很期待

這里呢,首先我們要感謝我們的大神趙老師,出資購買了一臺云服務器,為大家搭建了一個真實的在線項目供大家練手,這就是后面我們使用率會高達百分之好幾百的Cnode社區?http://118.31.19.120:3000/,希望大家玩的開心,玩的盡興,你一定會愛上這里

那下面廢話不多說,擼起袖子咱們開始干吧

第1步,我們打開命令行,cd Desktop進入桌面(進別的路徑也可以噢,這里為了方便給大家展示所以在桌面上)

2.?mkdir 20180315 ??在桌面上創建一個名叫20180315的文件夾

這個時候去桌面上看,一定會多一個這樣的文件夾,ok,接著往下走

3.?cd 20180315 ? cd命令就是打開這個文件夾的意思,聰明如你,一定不需要多解釋的

4. npm init ? 這個操作,就是初始化項目了,當你看到我下面標紅框的這段的時候,后面它是不會自己往下走的,怎么辦呢,動動你勤勞的小手,按一下Enter鍵,但是不只按一下哦,記得它蹦出來一行你就按一下,直到它問你“Is this OK?”這里點最后一下Enter鍵,項目的初始化就完成了

完成后,我們去桌面上打開20180315這個文件夾,你會發現,這里多了一個package.json文件,恭喜你,這一步成功

到這里,我們想一下,從課程開始,我們的標題一直都是結合selenium做web自動化測試,大家一定會問,selenium到底是什么啊?這個問題問的好,多了好多細節在里面,這么抽象的概念,我肯定不敢亂解釋啊,那我們看看官網怎么說的吧?https://seleniumhq.github.io/selenium/docs/api/javascript/index.html

網站大家自行點開啊,概念我就不復述了,小伙伴們英文一定都比我好,看到Installation這里,有沒有覺得很眼熟?沒錯,第一課中就介紹的,安裝selenium-webdriver啦,小case,所以我們的下一步

5. 命令行安裝selenium-webdriver 和 chromedriver

?npm install selenium-webdriver --save

?cnpm install chromedriver--save

安裝好了再看文件夾,是不是又多了兩個文件,多了就對了

node_modules里面是我們這個項目里所需要的依賴包,供你盡情玩耍的后盾

package-lock.json又是啥?它啊,因為各個包會更新換代吧,今天1.1,說不定明天就2.0了,這個lock.json就是記錄我們在安裝這些依賴包的時候,當時各個包的版本的

準備活動到這里做完了,接下來當然就是建立腳本了,新建一個.js文件,代碼開動了,便于操作,還是找我們的CukeTest

6. 打開我們的項目

新建一個.js文件,取名test.js

下面就是大家期待的寫腳本了,還記得上面的官網嗎,先別關啊,我們去看一眼selenium腳本的套路,啊不,大致框架是怎樣的,就是這一段

懵圈嗎?不明覺厲嗎?沒關系,我一步一步告訴你這一大段是怎么來的

首先,我們要引入selenium-webdriver里的方法,那么接下來要使用的常量一定要定義了(定義常量變量上一節課內容,沒看過的回去找一找哈)

然后呢,瀏覽器里的一系列操作一定要寫進一個方法啊,那就再定義一個方法

這里呢,在方法前面加了一個async,第一節曾經說過,這是為了解決異步問題加的,后面會有一節課來詳細講這個語法,大家不明白這里也沒關系,只要記住一點,async和await是Node.js里的一對CP,所以下面的代碼里面會出現await,看到await不要奇怪,它不是偷渡來的黑戶,只是async帶過來的

好,下面開始填充function

既然我們的項目是打開Cnode社區的網址,那么第一步肯定要打開瀏覽器了

new Builder()就是新建瀏覽器,forBrowser('chrome')意思是傳入chorme瀏覽器,官網里面傳的是firefox道理是一樣的,后面的build()是調用打開瀏覽器的方法

打開瀏覽器的操作這么長,我們用一個變量來存儲它吧,上節課說到的let可以出場了

這里大家可以運行一下,可以打開chrome瀏覽器

然后就是打開網址了,用趙老師搭建的環境

這里運行,可以打開Cnode社區網址

下面我們做一個登陸操作,這里要用到一個元素定位,元素定位的幾種方法會在下一堂課重點講解,這里先給大家推薦準確度較高的xpath定位

我們在界面上右鍵-檢查元素

點擊選擇器按鈕,變藍色表示激活

將鼠標移動到右上角“登錄”按鈕上,檢查元素頁面會定位到元素位置(紅框部分)

在此處右鍵->copy->Copy Xpath,這個空白處粘貼一下,你就可以看到這個它的內容了,記著別刪啊,下一條就用到了

找到了登錄按鈕,我們該點擊了是吧

findElement就是查找元素,里面的xpath是定位元素用的方法,引號里的內容熟悉嗎,剛剛copy下來的嘛,后面的click是調用的點擊操作

現在程序肯定可以跑到這個界面了吧

接下來就填寫用戶名和密碼,再點一次登錄按鈕吧,方法,跟上面的一樣,xpath定位,不重復寫了,怕你們嫌我啰嗦,提供兩個已經注冊好的用戶名密碼testuser01/123456、testuser02/123456 拿去浪吧,不用謝

sendkeys就是往輸入框里傳輸字段,因為輸入的內容是字符串,記得加引號哦

這段代碼你再跑一下試試,一定可以登錄成功,登錄不上你打我

你想問官網上這個怎么不一樣是嗎,我們不一樣,不一樣。。。

就知道你要這么問,這個Key呢,意思是直接點擊鍵盤上的某一按鍵,就比如我們輸入完密碼之后懶得用鼠標點一下登錄按鈕了,怎么辦,直接回車唄,代碼改成下面這樣,結果一樣的,有啥不一樣

到這里結束了嗎?再優化一下吧,剛剛寫一行操作一下,是不是跟我一樣,打開了好幾個瀏覽器了,都在任務欄上面掛著呢

排排坐,沒果果

這么多,當心CPU拿小拳拳捶你胸口,問我怎么辦,好說,執行完了加個關閉瀏覽器唄

好了,拿走吧

什么?你說代碼跑偏了不好看啊,哦對對對,代碼不要面子啊?我的鍋,作為一個負責的測試,我們要寫高顏值的代碼,我們CukeTest懂的,右鍵一下,看到格式化文件了嗎,對,點一下

高顏值代碼

到這里,我們就是從0開始創建了一個自動化腳本,看看自己的代碼,寶寶們還滿意嗎。

多個場景的測試情況,參考第二節課新建項目更改場景大綱的方法,沒看過的小盆友自己蹲墻角補課

Node.js結合Selenium做web自動化測試https://ke.qq.com/course/281565#tuin=173f40be

風里雨里,每天晚上8:00,準時等你

測試工具CukeTest下載地址http://www.cuketest.com/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容