引言
前面已經講過selenium的家族成員,其中一個成員就是這篇文章要講的——selenium IDE。
Selenium IDE介紹
selenium IDE結合瀏覽器提供腳本的錄制,回放以及編輯腳本功能,以及元素的定位,可以使用selenium IDE將錄制的腳本生成相應的帶單元測試框架的自動化測試腳本。
selenium具有錄制功能,可以web回放,錄制的腳本可以轉換為java、python、ruby、php等多種腳本語言。selenium IDE是Firefox的一個插件(xpi文件),依附於Firefox。所以需要先安裝Firefox瀏覽器。
當然后面selenium IDE也支持Chrome瀏覽器,時間好像是2017年12月,第一個版本selenium IDE1.0.Crx,這個需要在谷歌商店搜索,由於selenium服務器在美國,所以下載很慢,甚至經常失敗。
Selenium IDE 下載Chrome插件
這篇文章主要介紹谷歌瀏覽器的插件下載與安裝使用。
1、官方下載地址:https://www.selenium.dev/selenium-ide/,這個不FQ是下不了的,這里不演示步驟。
2、國內下載地址:https://www.crx4chrome.com/crx/77585/ ,這個網絡正常基本可以下載,目前最新版本是3.17.0

點擊Crx4Chrome下載。下載后的文件名稱是:mooikfkahbdckldjjndioackbalphokd-3.17.0-Crx4Chrome.com.crx,直接打開谷歌瀏覽器,打開擴展程序,手動拖到頁面上,如圖:

在瀏覽器右上角,找到selenium IDE的圖標,單擊打開。如圖所示:

3、其他地址:https://www.softpedia.com/get/Internet/Internet-Applications-Addons/Mozilla-Extensions/Selenium-IDE.shtml ,直接點擊下載crx文件,如圖:

4、谷歌插件下載:https://www.extfans.com/ ,也可以進入谷歌插件下載。這個是國內的網站,還是很方便。如圖:

5、其他下載方式:進入群文件下載,如圖:

到此,selenium IDE針對谷歌瀏覽器下載方式已經介紹完。下面就是使用。
Selenium IDE 使用案例
這里介紹的是CRX文件的使用,也就是谷歌瀏覽器上如何使用selelnium IDE錄制與回放腳本。
1、打開IDE,初始化界面如圖:

2、我們就選擇第一種方式來講,如圖:

輸入要錄制Web的地址,我這里輸入的是百度,如圖:

點擊開始錄制,插件會直接啟動一個谷歌瀏覽器的頁面,並且打開你輸入的百度地址,如圖:

簡單的錄制一下百度一下的功能,如圖:

這樣就錄制完成了,點擊右上角的紅色圓點,然后輸入測試用例名稱,如圖:

右擊測試用例,選擇導出按鈕,如圖:

選擇你喜歡的語言,單機導出按鈕,如圖:

選擇python的話,導出的腳本是py文件,打開文件查看:

文件代碼:
# Generated by Selenium IDE
import pytest
import time
import json
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
class Test():
def setup_method(self, method):
self.driver = webdriver.Chrome()
self.vars = {}
def teardown_method(self, method):
self.driver.quit()
def test_(self):
self.driver.get("https://www.baidu.com/")
self.driver.set_window_size(1145, 728)
self.driver.find_element(By.ID, "kw").click()
self.driver.find_element(By.ID, "kw").send_keys("selenium")
self.driver.find_element(By.ID, "su").click()
這是導出測試用例,也可以將整個測試套件導出來,方法類似。
接下來介紹一下界面上的功能。
UI界面說明
1.工具欄(Toolbar)
工具欄(Toolbar)最右側的紅色原點就是錄制按鈕。用來錄制用戶在瀏覽器上的操作腳本。

速度控制:用來控制用例執行速度

run all tests 運行所有test; 全部執行:如果當前工程有多個測試用例,使用該按鈕就會將用例全部執行

run current test 運行當前test; 單個執行:使用該按鈕只會自行當前選中的用例。如果當前工程只有一個用例,那么這個按鈕和“全部執行”按鈕效果相同。

暫停/重新開始:可以用來暫停或者重新開始一個正在執行的用例。

停止:停止當前正在執行的用例。

step over current command 跨過當然命令,逐步執行:用來逐步逐步執行一個用例。主要用來調試用例。

錄制:用來錄制用戶在瀏覽器上的操作腳本。

異常時暫停 : pause on exceptions

禁用斷點:

2.測試用例面板(Case Panel)
測試用例面板
Command、Target和Value輸入字段顯示當前選擇的命令及其參數。這些是可以修改當前選擇的命令的輸入字段。在底部窗格的Reference選項卡中指定用於命令的第一個參數總是位於Target字段中。如果第二個參數由Reference選項卡指定,則它總是位於Value字段中。注釋字段(Comment)允許您給當前命令添加注釋,方便日后閱讀。
測試用例錄制的腳本都在這里顯示,如圖:

命令配置
備注:Reference 選項卡是一個很有用的功能,這里用來顯示當前選中 Command 的功能說明,包括該 Command 所需要的參數(不是所有的 Command 都必須具備 Target 和 Value 兩個值),便於快速了解 Command 用法。我查看了其他的文檔發現之前的版本是有的。現在被官方暫時隱藏了,不久的將來會再次開放。

3.導航面版(Navigation Panel)

這里有個重要的功能,就是導出腳本了,選擇你的測試用例或測試套件,右擊導出,如圖:

4.控制台面板(Console Panel)
當您運行測試用例時,顯示進度的錯誤消息和信息消息會自動顯示在這個窗格中,即使您不首先選擇Log選項卡。這些消息通常用於測試用例調試
注意清除日志的清除按鈕【下圖右上角那個圓圈+斜杠就是】


從左至右,創建一個新項目,打開一個項目,保存腳本。
Selenium-IDE 保存的文件都是.side文件,如圖:

打開文件查看:
{
"id": "6027f8a9-1b6b-4600-88a3-f2ae0a3cbaa2",
"version": "2.0",
"name": "get_baidu",
"url": "https://www.baidu.com",
"tests": [{
"id": "a11f11e4-c08a-4fc7-bf97-e89e19ffdf0b",
"name": "訪問百度",
"commands": [{
"id": "6633231f-3b59-4cd8-9b76-b96eb062864d",
"comment": "",
"command": "open",
"target": "/",
"targets": [],
"value": ""
}, {
"id": "dc308428-bd13-4e8f-afd5-43e61bd2b230",
"comment": "",
"command": "setWindowSize",
"target": "1332x724",
"targets": [],
"value": ""
}, {
"id": "a994ba6e-7e8c-45eb-a8a5-a6ccf95e72a0",
"comment": "",
"command": "type",
"target": "id=kw",
"targets": [
["id=kw", "id"],
["name=wd", "name"],
["css=#kw", "css:finder"],
["xpath=//input[@id='kw']", "xpath:attributes"],
["xpath=//span[@id='s_kw_wrap']/input", "xpath:idRelative"],
["xpath=//input", "xpath:position"]
],
"value": "selenium"
}, {
"id": "8cf27024-0bc3-483c-8ef4-5da0a21e8dce",
"comment": "",
"command": "click",
"target": "id=su",
"targets": [
["id=su", "id"],
["css=#su", "css:finder"],
["xpath=//input[@id='su']", "xpath:attributes"],
["xpath=//span[@id='s_btn_wr']/input", "xpath:idRelative"],
["xpath=//span[2]/input", "xpath:position"]
],
"value": ""
}, {
"id": "d8891b92-c145-4e99-86b8-97cd0bba4649",
"comment": "",
"command": "close",
"target": "",
"targets": [],
"value": ""
}]
}],
"suites": [{
"id": "a5191391-a445-4088-b275-926e0883a365",
"name": "Default Suite",
"persistSession": false,
"parallel": false,
"timeout": 300,
"tests": ["a11f11e4-c08a-4fc7-bf97-e89e19ffdf0b"]
}],
"urls": ["https://www.baidu.com/"],
"plugins": []
}
備注:項目名稱和用例名稱盡量用英文,用中文的話,可能出現各種不適。並且項目名稱是中文,保存的時候沒有任何反應!
命令使用
1、斷言
通過使用上下文菜單添加驗證和斷言。(Adding Verifications and Asserts With the Context Menu)
如何添加斷言呢?在你錄制腳本的時候(紅色原點變成紅色正方形),在頁面上的任何地方單擊鼠標右鍵。您將看到一個顯示驗證和/或斷言命令的上下文菜單。

2.插入命令(Insert Command)
上面那種斷言是在錄制中的時候使用,你也可以錄制后,手動添加斷言,這樣使用的插入命令方式進行,如圖:

我們新增一個文本斷言,如圖:

將需要的內容放進來

斷言還有一種方式verify,如圖:

3.插入評論(Insert Comment)
我們可以給每一條 command 添加評論,提高腳本可讀性。這里評論指描述。

如果不想運行某條代碼的時候,可以使用注釋功能,如圖:

5.測試步驟(Test Step)
錄制好的步驟發現需要調整,這個時候我們直接按住某個步驟上下拖動來改變其執行順序即可。

6.腳本調試(Debug)

pycharm運行py腳本
我們將剛才導出來的腳本用pycharm打開后,稍微改一下,也是可以運行的,如圖:
# Generated by Selenium IDE
import pytest
import time
import json
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import unittest
class Test(unittest.TestCase):
def setup_method(self, method):
self.driver = webdriver.Firefox()
self.vars = {}
def teardown_method(self, method):
self.driver.quit()
def test_(self):
self.setup_method('')
self.driver.get("https://www.baidu.com/")
self.driver.set_window_size(1145, 728)
self.driver.find_element(By.ID, "kw").click()
self.driver.find_element(By.ID, "kw").send_keys("selenium")
self.driver.find_element(By.ID, "su").click()
self.teardown_method('')
if __name__ == '__main__':
unittest.main()
運行結果:
. ---------------------------------------------------------------------- Ran 1 test in 4.534s OK
總結
上面就是selenium IDE針對谷歌瀏覽器錄制與回放腳本的基本使用方法,還有很多功能及命令沒有講到,有興趣的朋友可以深入研究一下。另外,對測試開發感興趣的朋友可以加入我們學習交流群!
