本文章出處: http://blog.pulipuli.info/2011/07/selenium-ide_04.html https://learngeb-ebook.readbook.tw/intro/selenium.html
Why to choose Python over Java in Selenium
Few points that favor Python over Java to use with Selenium is,
Java programs tend to run slower compared to Python programs.
Java uses traditional braces to start and ends blocks, while Python uses indentation.
Java employs static typing, while Python is dynamically typed.
Python is simpler and more compact compared to Java.
4.1 認識 Selenium
Sellenium 是為瀏覽器自動化(Browser Automation)需求所設計的一套工具集合,讓程式可以直接驅動瀏覽器進行各種網站操作。 2004 年在芝加哥 ThoughtWorks 公司工作的 Jason Huggins 建立一個名為「JavaScriptTestRunner」的測試工具(testing tool),ThoughWorks 的風格就是讓各類型的應用程式都能自動化測試,這個最早的測試工具原型,就是 Selenium 開放源碼專案的前身。 Selenium 執行「真實的瀏覽器」來進行網站操作的自動化,它能夠直接獲取即時的內容,包括被 JavaScript 修改過的 DOM 內容,讓程式可以直接與網頁元素即時互動、執行 JavaScript 程式,因此也適用於前端採用 AJAX 技術的網站。+
Selenium 是許多 Web Testing 工具的核心,利用 Selenium 操作網頁表單資料、點選按鈕或連結、取得網頁內容並進行檢驗,可以滿足相當多測試的需求。
Selenium 發展迄今,已有四個主要的專案發行。
- Selenium IDE
- Selenium Remote Control
- Selenium WebDriver
- Selenium Grid 第一次學習 Selenium 工具時,建議可以從 Selenium IDE 開始接觸,它有圖形化介面,能用滑鼠簡單地完成一些測試案例。
Selenium WebDriver
這也就是我們在本地端 之後會需要下載的webdriver .exe 檔案 讓程式碼可以透過DRIVER去模擬頁面操作
Selenium Remote Control ,Selenium Grid
類似一個遠端的SERVER (也可以架設在本機) 主要是類似呼叫伺服器 如上圖所示
4.2 Selenium Ide 如何安裝
Selenlium IDE 是一個 FireFox 瀏覽器外掛,安裝後可以透過它來錄製瀏覽器的操作動作,並成為測試腳本,當然也可以對腳本進行回放與匯出。此外 Selenium IDE 還支援許多 Extension,可以擴充功能,像是畫面截圖、Highlight 等等。安裝時請先裝好 FireFox 瀏覽器,接著到官方網站下載 Selenium IDE,字蠻小的要找一下。請用Firefox 開啟後安裝
下列套件
4.3 Selenium Ide如何使用
測試腳本可以用錄製的算是很方便了,Selenium IDE 跟幾年前比起來已經進步許多,錄下來的腳本只要稍作修改後,進行回放都不會有太大的問題。我們先來錄個測試腳本跑看看,測試的動作如下:
- 開啟 Google 搜尋引擎
- 輸入「news」按下搜尋 錄製時先按下右上角的紅色按鈕,如下圖:
4.4 Selenium Ide 如何匯出成Python
匯出後可以看到它是用unittest 的型態
python unitttest 的架構
通常一個 unitTest的測試程式結構如下,會有三大段落。
第一段落為 setUP: 這個段落主要用來準備測試資料與環境。每次測試程式執行時,只會在測試程式啟動時執行一次。
中間段落為測試個案: 這個部份就是測試程式與測試個案。每一個 function 就是一個測試個案,都會有一個對應的測試結果。
最後段落為 TearDown: 這個段落通常用來將系統資源釋放,或是將測試環境與資料復原。每次測試程式執行時只會執行一次。
4.5 Selenium locator 優先順序
https://blog.mozilla.org/webqa/2013/09/26/writing-reliable-locators-for-selenium-and-webdriver-tests/ https://www.simple-talk.com/dotnet/.net-framework/xpath,-css,-dom-and-selenium-the-rosetta-stone/
以下面順序為優先 但是我會建議如果沒有找到Id, Name or Class ,都通用xpath去處理 因為容易知道
大家想定位的位置
- Id
- Name
- Linktext
- Partial Linktext
- Tag Name
- class name
- Css
- xpath