Selenium 1.x時代已經遠去,它理應躺在歷史的角落里,靠著壁爐烤著火,抽著旱煙,在裊裊的升起的青煙中回憶那曾經屬于自己的美好時代。
不過事實卻并非如此,現今原本早應退役的selenium 1.x卻還是多數人堅定的選擇,究其原因不過是1.x時代遺留下了大量的文檔,代碼,教程讓人們誤以為1.x還是這個年代的主流,還應該光鮮亮麗在前臺演 出屬于它的美好。長江后浪推前浪,最為前浪的selenium 1.x的宿命應該是死在沙灘上。
好了,直入主題,由于開源社區不再維護selenium 1.x再加之更為先進的selenium 2.0確實有不少優勢之初可以完全取代1.x,在這里筆者會花一些筆墨,若干篇幅,爭取深入淺出的講解selenium 2.0的一些基本知識,常用方法和高級擴展,但由于筆者水平和時間精力等確實有限,文中應該避免不了謬誤和臆斷之處,還望眾位讀者多多海涵。
本文中所以代碼和示例均由Ruby編寫,本文介紹的webdriver api也主要是ruby binding。所以首先請確保ruby語言在開發環境上正確安裝。
教程的第一節從selenium 2.0和webdriver關系說起。
Selenium 2.0 和webdriver之間有什么關系,有什么不可告人的秘密?說來話長,但也簡單。Selenium 2.0其實就是webdriver。就像張飛就是張翼德,關羽就是關云長一樣,叫法不同但內容卻是一樣的。
安裝selenium webdriver
- 安裝ruby1.8.7或1.9.2。注意selenium-webdriver只支持1.8.7以上的ruby版本;
- 使用gem安裝selenium-webdriver;打開命令行,輸入下列代碼完成安裝。注意,如果你的開發環境需要http proxy的話,請注意在gem命令中加入–http_proxy參數;
- gem install selenium-webdriver [--http_proxy]
- 在命令行中輸入gem list,如果selenium-webdriver正確安裝,則其應該出現在結果列表里。在文本寫作時,selenium webdriver的最新版本應該是2.2.0;
1
|
gem list selenium-webdriver |
安裝firefox。本文使用firefox作為測試瀏覽器進行講解,所以請確保開發環境上正確安裝了firefox。由于firefox版本更新較快,我們只需要選擇1個穩定版本安裝既可,本文中筆者使用的版本是FF 5.0;
簡單的google test
下面我們寫幾行代碼在初次感受一下webdriver的魅力,好吧,說老實話原生的selenium webdriver并沒有什么獨特的魅力,相反到是watir-webdriver更加的平易近人老少咸宜。這個不是文本討論的范疇,暫且打住。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
require 'rubygems' require 'selenium-webdriver' driver.navigate.to "http://google.com" sleep 3 element = driver.find_element( :name , 'q' ) element.send_keys "Hello WebDriver!" element.submit puts driver.title driver.quit |
如果一切順利的話,這幾行代碼將會打開firefox瀏覽器,然后轉跳到google首頁。等待3秒后在搜索框中輸入Hello WebDriver并提交搜索結果至后臺。然后在命令行打印出當前頁面的title,并關閉ff瀏覽器。
如果你的代碼不能順利運行,請從如下幾個方面進行檢查。
- ruby的版本是否是1.8.7以上并正確安裝;
- 代碼中是否require ‘rubygems';
- 是否正確安裝了Selenium WebDriver;
- 代碼輸入是否有誤;
Selenium-WebDriver ruby binding的安裝實際上非常的簡單和快速,稍微有點ruby基礎的讀者應該能夠順利的自行完成。