認識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了。當然也可以直接快捷鍵啟動。



以上圖例就是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】功能。
導出腳本步驟:
- 單擊選擇需要導出的Test Case
- 點擊【文件】選項
- 點擊選擇【Export Test Case As...】,然后根據(jù)需要選擇你期望的腳本語言即可。(由于之前是使用的python webdriver編寫腳本,所以我選擇圖中的選項)
- 保存腳本到本地即可。

以下就是本次導出的腳本:
# -*- 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