介紹 Selenium

  • 免費使用 (Open source project)
  • 可透過自動化的方式來控制使用者介面
  • 支援多種瀏覽器:Firefox、Chrome、IE、Edga...
  • 支援多平台:MAC、Window、Linux
  • 支援多語言:Java、Python、Ruby、C#、Javascipt、C++
  • https://github.com/christian-bromann/awesome-selenium

優點

  • 支援重複執行測試程式
  • 支援並行執行
  • 支援背景執行
  • 提高測試準確定,減少人為產生的錯誤。
  • 省下測試的時間

應用領域

  • 自動化測試
  • 網站擷取 / 網路爬蟲

目前有四個主要的專案

  • Selenium IDE
  • Selenium Remote Control (RC)
  • Selenium Grid
  • Selenium WebDriver

Selenium IDE

Selenium IDE 是 Firefox 附加元件 (extension),需要搭配 Firefox 瀏覽器才能使用。

開啟 Selenium IDE

在 Firefox 瀏覽器的工具選單,打開 Selenium IDE 會出現下面這個視窗畫面:

Selenium Remote Control

簡稱 Selenium RC,它提供可以遠端執行 Selenium 的 Client / Server 架構。

Selenium Server 是複雜控制瀏覽器行為,Selenium Client 則是用於撰寫測試腳本來跟 Selenium Server 溝通。

Selenium Grid

圖片來源:Introducing the Sauce Plugin for Selenium Grid | Sauce Labs

Selenium Grid 主要控制多台機器(RC Node),每次測試任務都先呼叫 Hub,然後再由路由 (Hub) 分配給節點 (Node)。

  • Selenium Grid Hub
  • Selenium Grid Node

Selenium WebDriver

許多網頁自動化測試框架,都是以 Selenium WebDriver API 作為基礎,功能強大且穩固已經讓 Selenium 成為瀏覽器自動化的基石。Selenium 2.0 帶來 WebDriver 的實作,跨越不同瀏覽器的自動化操作,有更清楚定義的標準可循,目前 WebDriver API 規範已提交 W3C,若能夠被標準化且在各大瀏覽器實作,執行跨瀏覽器的自動化測試工作將會被簡化許多。

var webdriver = require('selenium-webdriver'),
    By = webdriver.By,
    until = webdriver.until;

var driver = new webdriver.Builder()
    .forBrowser('firefox')
    .build();

driver.get('http://www.google.com/ncr');
driver.findElement(By.name('q')).sendKeys('webdriver');
driver.findElement(By.name('btnG')).click();
driver.wait(until.titleIs('webdriver - Google Search'), 1000);
driver.quit();

延伸閱讀

results matching ""

    No results matching ""