自動化工具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)