【5】第2章 測試環境搭建(2)

2.3 安裝瀏覽器驅動
WebDriver 支持Firefox (FirefoxDriver)、IE (InternetExplorerDriver)、Opera (OperaDriver) 和Chrome(ChromeDriver)。
對Safari 的支持因爲技術限制在本版本中未包含,可是可使用SeleneseCommandExecutor模擬。
還支持Android (AndroidDriver)和iPhone (IPhoneDriver) 的移動應用測試。
還包括一個基於HtmlUnit 的無界面實現,相關驅動爲HtmlUnitDriver。
Selenium-WebDriver支持下面的瀏覽器,以及這些瀏覽其兼容的操做系統。
> Google Chrome 12.0.712.0+
> Internet Explorer 6, 7, 8, 9 - 32 and 64-bit
> Firefox 3.0, 3.5, 3.6, 4.0, 5.0, 6, 7
> Opera 11.5+
> HtmlUnit 2.9
> Android – 2.3+ 爲移動電話和平板電腦(設備或模擬器)
> iOS 3+ 移動電話(設備或模擬器) 以及3.2+ 平板電腦(設備或模擬器)

 

 
各個瀏覽器驅動下載地址: http://www.seleniumhq.org/download/
安裝Chrome 瀏覽器驅動,下載ChromeDriver_win64.zip(根據本身系統下載不一樣的版本驅動),解壓獲得chromedriver.exe 文件放到系統環境變量Path 下面。
安裝IE 瀏覽器驅動,下載IEDriverServer_Win32_x.xx.zip,將解壓獲得IEDriverServer.exe,一樣放置到系統環境變量path 目錄下。
 
在Liunx 系統下,一樣下載系統對應的瀏覽器驅動,並將瀏覽器驅動放置到環境變量Path 所設置的路徑下,不一樣的Linux 環境變量的設置也會有所區別,這裏再也不詳細介紹。
 
 
安裝完成後能夠用IE 和chrome 來替換firefox 運行上面的例子。
import org.openqa.selenium.firefox.*;
....
WebDriver driver = new ChromeDriver();
....
替換爲:
import org.openqa.selenium.chrome.*;
....
WebDriver driver = new ChromeDriver();
....
import org.openqa.selenium.ie.*;
....
WebDriver driver = new InternetExplorerDriver();
....
若是程序能調用相應的瀏覽器運行,說明咱們的瀏覽器驅動安裝成功。
 
2.3補充說明:selenium+chromedriver安裝及簡單使用
解壓后里面是一個exe文件,有兩種選擇:
1.每次使用手動增長路徑:
?
1
2
3
#手動添加路徑
path = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver\chromedriver.exe"
driver = webdriver.Chrome(executable_path=path)
 
2. 添加環境變量path,增長chromedriver所在的目錄
(個人電腦--右擊屬性--高級系統調設置--環境變量--path--把chromedriver.exe的路徑添加上便可)
若是報錯,考慮版本不對的問題,換個chromedriver.exe!!!
 
 
 
2.4 不一樣編程語言下使用WebDriver
W3C(萬維網聯盟)對WebDriver 對作定義和規範。
  WebDriver 是一個遠程控制界面,支持檢討和用戶代理的控制權。它提供了一個獨立於系統平臺和編程語言的線協議(wire protocol)做爲一種遠程進程程序指示web 瀏覽器的行爲。
該WebDriver API 經過通信協議和一組接口來發現頁面上的DOM 元素中定義的操做,包括控制瀏覽器的行爲。
咱們能夠這樣來理解,例如,國標標準定義插板和插頭的生產標準。那麼全部的電器廠商生產的插頭與全部插板廠商生產的插板都按照這套標準來設計與生產。因此,咱們拿到任何一個合格的插頭和插板均可以匹配得上。
WebDriver 能夠理解成對操做瀏覽器和頁面元素的一套「國標」。那麼不一樣的編程語言均可以按照這套標準實現本身的語言的WebDriver庫。
 
下面展現在不一樣編程語言下使用WebDriver 實現百度搜索的例子。
 
在C#中引入Selenium WebDriver 實現自動化測試:
baidu.cs
//添加 Selenium(webdriver)的引用
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;
namespace SeleniumTests
{
class Baidu
{
static void Main(string[] args)
{
driver = new FirefoxDriver();
url = "http://www.baidu.com/";;
driver.Navigate().GoToUrl(url)
var searchBox = driver.FindElementById("kw");
searchBox.SendKeys("Selenium");
ar btnClick = driver.FindElementById("su");
btnClick.Click();
driver.Quit();
}
}
}

 

 
在Ruby 中引入Selenium WebDriver 實現自動化測試:
baidu.rb
#導入Selenium(webdriver)包
require 'Selenium-webdriver'
driver = Selenium::WebDriver.for:chrome
driver.get "http://www.baidu.com";
driver.find_element(:id, 'kw').send_keys "Hello WebDriver!"
driver.find_element(:id, 'su').click
driver.quit

 

 
在Python 中引入Selenium WebDriver 實現自動化測試:
baidu.py
#coding=utf-8
from selenium import webdriver
browser = webdriver.Firefox()
browser.get("http://www.baidu.com";)
browser.find_element_by_id("kw").send_keys("selenium")
browser.find_element_by_id("su").click()
browser.quit()

 

 
在不一樣的編程語言中會有語法的差別,咱們拋去語法的差別性,在不一樣的語言中實現百度搜索的自動化實例都完成了下面幾個操做。
 
(1)首先導入Selenium(webdriver)相關模塊。
(2)調用Selenium 的瀏覽器驅動,獲取瀏覽器句柄(driver)並啓動瀏覽器。
(3)經過句柄訪問百度URL。
(4)經過句柄操做頁面元素(百度輸入框和按鈕)。
(5)經過句柄關閉瀏覽器。
 
因此,WebDriver 支持多種編程語言,再確切的能夠看做是多種語言都支持WebDriver,惟一的不一樣在於不一樣語言實現的類與方法名的命名差別性。固然,這樣作的好處不言而喻,每一個人能夠根據本身熟悉的語言來使用WebDriver 編寫自動化測試腳本。
相關文章
相關標籤/搜索