用Selenium搶會議室(二):使用IDE錄制腳本

認識Selenium IDE

前面介紹Selenium時已經(jīng)提到了,selenium IDE是Firefox的一個插件。無需任何其它環(huán)境,就能直接錄制腳本,并導出為各種語言的腳本,對于自動化新手來說,簡直就是腳本開發(fā)的利器。
當然,對于自動生成的腳本結(jié)構(gòu)、可維護性暫不討論,但selenium IDE確實能夠幫助新人快速搭建腳本框架。

Selenium IDE安裝

  • 步驟1:安裝Firefox
    【注意】:最新的Firefox Quantum(57)更新較大,許多擴展插件都不支持,selenium IDE也不兼容。建議下載舊的52版本Firefox,并關閉自動更新。
  • 步驟2:安裝selenium IDE擴展
    selenium IDE擴展安裝

Selenium IDE使用

一、IDE界面功能一覽

安裝完插件后,在Firefox頂欄右鍵,勾選【菜單欄】,然后在工具欄中就能啟動selenium IDE了。當然也可以直接快捷鍵啟動。


顯示菜單欄
啟動IDE
selenium IDE功能界面

以上圖例就是selenium IDE的主界面了。

  • 最上排是菜單欄,其中Actions為selenium的一些行為操作,Options為IDE的設置選項,F(xiàn)avorites沒有用過,好像是可以收藏常用的suite。

  • BaseURL就是測試起始的url,錄制時會自動填入。

  • 下面一排為最常用的操作選項,紅框第一部分(fast、slow)用來調(diào)節(jié)腳本運行的速度。

  • 紅框第二部分為運行、暫停testcase/suite,單步調(diào)試等常用功能。

  • 紅框第三部為定時運行、以及最最常用的【錄制】功能。

  • 【Test Case】顧名思義,這部分用于管理case以及suite。

  • 中間右側(cè)最大的區(qū)域就是錄制的腳本內(nèi)容了,主要記錄了每一步的操作的命令、控件名、參數(shù)。通過下面的command、target、value框框中可以自行修改。圖例中的case就是百度搜索”自動化測試“后生成的腳本。

  • 最下面一部分就是運行過程的log、selenium方法參考、HTML元素等。

二、錄制腳本

selenium IDE的錄制功能十分簡單,也很強大。只需點擊最右側(cè)的大紅點---【錄制按鈕】,只要顯示為按下去的狀態(tài),就說明已經(jīng)進入錄制模式了。
之后所有訪問網(wǎng)頁的操作都會被IDE記錄下來。錄制完成后,再點擊一次【錄制按鈕】就結(jié)束錄制了。
然后就能通過【運行】【暫?!俊締尾竭\行】等功能回放、調(diào)試腳本了。

三、導出腳本

selenium IDE錄制的腳本能直接在IDE中運行、調(diào)試,但這個顯然不是我們最終想要的,我們需要的是各種語言的腳本(python、ruby、java等),這個就用到了IDE強大的【Export】功能。
導出腳本步驟:

  1. 單擊選擇需要導出的Test Case
  2. 點擊【文件】選項
  3. 點擊選擇【Export Test Case As...】,然后根據(jù)需要選擇你期望的腳本語言即可。(由于之前是使用的python webdriver編寫腳本,所以我選擇圖中的選項)
  4. 保存腳本到本地即可。
導出腳本

以下就是本次導出的腳本:

# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
import unittest, time, re

class Test(unittest.TestCase):
   def setUp(self):
       self.driver = webdriver.Firefox()
       self.driver.implicitly_wait(30)
       self.base_url = "http://start.firefoxchina.cn/"
       self.verificationErrors = []
       self.accept_next_alert = True
   
   def test_(self):
       driver = self.driver
       driver.get(self.base_url + "/")
       driver.find_element_by_id("search-key").clear()
       driver.find_element_by_id("search-key").send_keys(u"自動化測試")
       driver.find_element_by_id("search-submit").click()
   
   def is_element_present(self, how, what):
       try: self.driver.find_element(by=how, value=what)
       except NoSuchElementException as e: return False
       return True
   
   def is_alert_present(self):
       try: self.driver.switch_to_alert()
       except NoAlertPresentException as e: return False
       return True
   
   def close_alert_and_get_its_text(self):
       try:
           alert = self.driver.switch_to_alert()
           alert_text = alert.text
           if self.accept_next_alert:
               alert.accept()
           else:
               alert.dismiss()
           return alert_text
       finally: self.accept_next_alert = True
   
   def tearDown(self):
       self.driver.quit()
       self.assertEqual([], self.verificationErrors)

if __name__ == "__main__":
   unittest.main()

可以看到,導出的腳本為標準的python語言,并且是完整的unittest結(jié)構(gòu),可以直接運行。
不過一般實際工作中并不會直接使用該腳本做為自動化用例,還需要根據(jù)項目結(jié)構(gòu)去優(yōu)化、調(diào)整腳本,加入variefy等。
不過可以看到,selenium IDE錄制腳本的方式能快速生成最基本的腳本,無需手動分析html結(jié)構(gòu),大大提升了腳本編寫的效率。

深入學習selenium IDE

以上只是簡單記錄了selenium IDE的錄制功能。
推薦一下易百的學習資料,對IDE的介紹十分全面:
深入學習selenium IDE

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容