selenium前端自動化測試 一(node版本)

? ? ? ?看到大神們箕憾,都在做前端的自動化測試牡借,去快速高效的書寫測試腳本,節(jié)省人力厕九,物力蓖捶,提高效率地回,作為一個前端菜鳥 自然是羨慕不已扁远!于是決心也要深入學(xué)一下前端自動化測試,上網(wǎng)一找刻像,相關(guān)資料說多不多畅买,說少不少。于是開始學(xué)習(xí)之旅

1.selenium IDE

? ? ? 一款神器 细睡。能夠直接在火狐瀏覽器下快速地進行前端自動化測試谷羞,擁有自己的客戶端界面,操作也很簡單溜徙,看懂文字的 一般都會使用 這里附上大百度的安裝介紹湃缎,大家可以自己嘗試。(ps:有ide下載官網(wǎng)說 firefox版本要在v34.0左右的版本蠢壹,然后如今的firefox已經(jīng)更新到v53.0,找不到低版本firefox嗓违,不過我這里親測 高版本也能正常跑通,盡管放心M济场)

selenium ide 安裝與使用

2.selenium webdriver

? ? ? ?人家大神都是走coding路線的蹂季,你拿個ide 不是顯的很low么冕广,對吧!而且ide也沒有coding測試全面偿洁,更加隨心所欲撒汉!可是大神們都是技多不壓身的主,又會python涕滋,又會java的睬辐!好在人家也給了node的api,讓我這樣的會的很少的何吝,也不至于餓死了溉委!下面就是node 版本的selenium webdriver的coding了!

1.找到咱們的大github爱榕,https://www.npmjs.com/package/selenium-webdriver ?

下載selenium-webdriver

? ? ? npm install selenium-webdriver ?-g

咱們?yōu)榱?以后測試的時候直接require進來就行瓣喊,所以加了-g,但是項目中使用 require('selenium-webdriver')?

但是有時候會無情的報錯出現(xiàn) Cannot find module 'selenium-webdriver'

(自己也被深深地坑了一道G帧)

原因 是你沒有配置環(huán)境變量NODE_PATH 所以自然會報錯咯

windows下就是 系統(tǒng)-》環(huán)境變量-》path 自己去添加吧(具體請自行百度T迦)

這里主要說下mac下咯(當然用mac啦,寫代碼這么苦逼跪者,還不對自己好點呀?妹薄)

在Linux下的node 項目同步到Mac OS X 下發(fā)現(xiàn)不能正常運行,全局包依賴沒有生效渣玲,

發(fā)現(xiàn)需要設(shè)置 NODE_PATH變量:

? ? ?export NODE_PATH=/usr/local/lib/node_modules

再次運行正常逗概。(好的 一勞永逸,以后-g安裝的 文件require都能引入到了M堋)?

2.開始編寫腳本 在firefox下測試

var webdriver = require('selenium-webdriver'),

? ? ? ?By = webdriver.By,

? ? ? ?until = webdriver.until;

var driver = new webdriver.Builder()

? ? ?.forBrowser('firefox')

? ? ?.build();

? ? ?driver.get('http://www.baidu.com');

? ? ?driver.findElement(By.id('kw')).sendKeys('selenium');

driver.findElement(By.id('su')).click();

driver.wait(until.titleIs('test_百度搜索'), 1000);

driver.quit();

愉快地node運行

題外話:如果出現(xiàn)static createSession(...args) {}? ? SyntaxError: Unexpected token ...

而你不知道...args ?是啥逾苫,建議 再學(xué)一下es6 ,而這個原因就是 你丫的不好好學(xué)習(xí) node 好久沒更新了枚钓,es6語法不識別了吧铅搓,要么你自己官網(wǎng)下載最新的node安裝覆蓋一下 要么就使用 npm update ?更新一下node ?不過這樣 只能祝你好運,因為npm更新node 真的好慢搀捷!而且你首先是翻墻的(哎星掰,我的大天朝啊D壑邸)


如果出現(xiàn):

The geckodriver executable could not be found on the current PATH. Please download the latest version from https://github.com/mozilla/geckodriver/releases/WebDriver and ensure it can be found on your PATH.

仔細一看 gecko不是firefox的內(nèi)核么氢烘!哦,這意思就是 你沒有安裝geckodriver驅(qū)動家厌,你怎么打開firefox播玖,沒辦法,乖乖地安裝

npm install -g geckodriver

然而 一坑不平 一坑又起 ?又出現(xiàn)

InvalidArgumentError: Could not convert 'text' to string

在driver.findElement(By.id('kw')).sendKeys()

欺負我讀書少像街, 這不是string類型是啥黎棠,百般嘗試晋渺,new String('selenium') ?也不行,看github上的request 上老外也遇到這個問題脓斩,而且還沒有解決木西,自己就心滿意足的,但是不能就這么放著不解決呀随静!然而在chrome里面是正常的八千,這里大膽的預(yù)測可能是因為firefox的版本過高有關(guān)!

所以我們這么解決

將driver.findElement(By.id('kw')).sendKeys('selenium')換成

var longstring = "test";

inputField = driver.findElement(webdriver.By.id('kw'));

driver.executeScript("arguments[0].setAttribute('value', '" + longstring +"')", inputField);

成功跑通燎猛。不過跑通firefox不行恋捆,咱們還有chrome

3.開始編寫腳本 在chrome下測試

? 估計大家已經(jīng)想到 對了只需要下載

npm install chromedriver -g

var webdriver = require('selenium-webdriver'),

By = webdriver.By,

until = webdriver.until;

var driver = new webdriver.Builder()

.forBrowser('chrome')

.build();

driver.get('http://www.baidu.com');

var longstring = "test",

driver.findElement(By.id('kw')).sendKeys(longstring);//正常使用

driver.findElement(By.id('su')).click();

driver.wait(until.titleIs('test_百度搜索'), 1000);

driver.quit();

需要注意的是

session not created exception: Chrome version must be >= 56.0.2884.0

沒有的話,你就趕緊官網(wǎng)更新chrome吧?

好了重绷!

api:webdriver api文檔? ? 祝大家幸福沸停!

以后的擴展操作就靠你自己了 node的語法忘了,就再看看node吧昭卓!

至于ie嘛愤钾,目前沒有test,希望有研究的朋友候醒,也可以留言給我能颁,我好好學(xué)習(xí)一下!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末倒淫,一起剝皮案震驚了整個濱河市伙菊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌敌土,老刑警劉巖镜硕,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異纯赎,居然都是意外死亡谦疾,警方通過查閱死者的電腦和手機南蹂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進店門犬金,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人六剥,你說我怎么就攤上這事晚顷。” “怎么了疗疟?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵该默,是天一觀的道長。 經(jīng)常有香客問我策彤,道長栓袖,這世上最難降的妖魔是什么匣摘? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮裹刮,結(jié)果婚禮上音榜,老公的妹妹穿的比我還像新娘。我一直安慰自己捧弃,他們只是感情好赠叼,可當我...
    茶點故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著违霞,像睡著了一般嘴办。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上买鸽,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天涧郊,我揣著相機與錄音,去河邊找鬼眼五。 笑死底燎,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的弹砚。 我是一名探鬼主播双仍,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼桌吃!你這毒婦竟也來了朱沃?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤茅诱,失蹤者是張志新(化名)和其女友劉穎逗物,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瑟俭,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡翎卓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了摆寄。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片失暴。...
    茶點故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖微饥,靈堂內(nèi)的尸體忽然破棺而出逗扒,到底是詐尸還是另有隱情,我是刑警寧澤欠橘,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布矩肩,位于F島的核電站,受9級特大地震影響肃续,放射性物質(zhì)發(fā)生泄漏黍檩。R本人自食惡果不足惜叉袍,卻給世界環(huán)境...
    茶點故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望刽酱。 院中可真熱鬧畦韭,春花似錦、人聲如沸肛跌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽衍慎。三九已至转唉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間稳捆,已是汗流浹背赠法。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留乔夯,地道東北人砖织。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像末荐,于是被迫代替她去往敵國和親侧纯。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,500評論 2 359

推薦閱讀更多精彩內(nèi)容