1. 程式人生 > >自動化工具Selenium介紹和分析

自動化工具Selenium介紹和分析

Selenium

  • Selenium簡介
  • Selenium IDE
  • Selenium Grid
  • Selenium RC
  • Selenium 2.0
  • WebDriver API

Selenium簡介

Selenium是Web自動化測試工具集,但是並不侷限於此,它還支援所有基於Web的管理任務自動化。

Selenium的特點如下:

開源、免費
多瀏覽器支援:Firefox、Chrome、IE、Opera、Edge
多平臺支援:Linux、Windows、Mac
多語言支援:Java、Python、Ruby、C#、JavaScript、C++
對Web頁面喲良好的支援
支援分散式測試執行

Selenium有兩個版本,它不是由單獨一個工具構成,而是由一些外掛、類庫組成:

Selenium 1.0 = Selenium IDE + Selenium Grid + Selenium RC

Selenium IDE

Selenium IDE是嵌入到Firefox瀏覽器中的一個外掛,實現簡單的瀏覽器操作的錄製與回放功能。

能夠快速建立bug重現指令碼,在測試人員測試過程中,發現bug之後可以通過IDE將重現的步驟錄製下來。

Selenium Grid

Selenium Grid是一種自動化的測試輔助工具,利用Grid可以很方便地實現在多臺機器上和異構環境中執行測試用例

Selenium RC

Selenium RC支援多種不語言編寫自動化指令碼,通過Selenium RC的伺服器作為代理伺服器去訪問應用,從而達到測試的目的

Selenium RC分為Client Libraries和Selenium Server。
Client Libraries用於編寫測試指令碼,用來控制Selenium Server的庫。
Selenium Server負責控制瀏覽器的行為。

Selenium 2.0

Selenium 2.0 = Selenium 1.0 + WebDriver

Selenium 2.0主推的是Webdriver,可以將其看做是Selenium RC的替代品。因為Selenium為了保持向下的相容性,在2.0中並沒有徹底拋棄Selenium RC。

Selenium RC和WebDriver的區別:
Selenium RC是在瀏覽器中執行JS應用,使用瀏覽器內建的JS翻譯器來翻譯和執行selense命令
WebDriver是通過原生瀏覽器支援或者瀏覽器擴充套件來直接控制瀏覽器。WebDriver針對各個瀏覽器而開發,取代了嵌入到被測Web應用中的JS 。

8種定位元素方法

find_element_by_id(” “)—對應id
find_element_by_class_name(“”)—對應class find_element_by_name(” “)—對應name
find_element_by_link_text(” “)—對應連結文字
find_element_by_partial_link_text(” “)—對應部分連結文字,針對較長文字,可以取部分文字
find_element_by_tag_name(” “)—對應標籤名,例如input ,div這種
find_element_by_xpath(” “)—對應元素的xpath路徑
find_element_by_css_selector(” “)
find_element_by_id(“kw”)=find_element(By.ID,”kw”)

滑鼠事件

perform() 執行所有ActionChains中儲存的行為
double_click() 雙擊拖動
move_to_element() 滑鼠懸停

鍵盤事件

send_keys(Keys.BACK_SPACE) 刪除鍵(Backspace)
send_keys(Keys.SPACE) 空格鍵(Space)
send_keys(Keys.TAB) 製表鍵(Tab)
send_keys(Keys.ESCAPE) 回退鍵(Esc)
send_keys(Keys.ENTER)回車鍵(Enter)
send_keys(Keys.CONTROL,’a’) 全選(Ctrl+A)
send_keys(Keys.CONTROL,’c’)複製(Ctrl+C)
send_keys(Keys.CONTROL,’x’) 剪下(Ctrl+X)
send_keys(Keys.CONTROL,’v’)黏貼(Ctrl+V)