Selenium IDE可以用來(lái)調(diào)式Selenium腳本,支持將瀏覽器的Web網(wǎng)頁(yè)操作導(dǎo)出為不同編程語(yǔ)言的腳本。
創(chuàng)建項(xiàng)目之后可以錄制或回放已錄制的網(wǎng)頁(yè)操作情況,特別是對(duì)一些開(kāi)發(fā)測(cè)試人員提供了相當(dāng)大的便利。
目前,該Selenium IDE插件可以支持Edge/火狐以及谷歌瀏覽器的使用,其他瀏覽器的使用還有待觀察。
由于我的操作系統(tǒng)上安裝的是Edge的瀏覽器,下面看看如何在Edge上面如何安裝Selenium IDE并且實(shí)現(xiàn)網(wǎng)頁(yè)操作的腳本錄制效果。
1.Selenium IDE安裝
打開(kāi)Edge瀏覽器,點(diǎn)擊右上角的三個(gè)點(diǎn)可以打開(kāi)瀏覽器菜單,然后選擇擴(kuò)展就進(jìn)入如下圖所示的頁(yè)面。
這個(gè)時(shí)候,我們選擇打開(kāi)'MicroSoft Edge'的外鏈網(wǎng)站,就會(huì)進(jìn)入微軟提供的Edge的軟件庫(kù)。
在當(dāng)前的軟件庫(kù)中搜索我們需要安裝的Selenium IDE插件,選擇好后搜索就會(huì)出現(xiàn)下面的搜索結(jié)果。
發(fā)現(xiàn)Selenium IDE插件已經(jīng)找到了,這個(gè)時(shí)候直接點(diǎn)擊'獲取'就會(huì)開(kāi)始自動(dòng)安裝該插件了。
出現(xiàn)添加擴(kuò)展或者取消的彈窗時(shí),直接選擇'添加擴(kuò)展'就可以了,不同瀏覽器出現(xiàn)的內(nèi)容可能不太一樣,但是大同小異都差不多。
最后,Selenium IDE插件安裝完成后會(huì)出現(xiàn)下面的提示,說(shuō)明這個(gè)時(shí)候Selenium IDE插件已經(jīng)安裝成功了。
2.Selenium IDE錄制腳本
完成Selenium IDE插件安裝后在瀏覽器的右上角就會(huì)出現(xiàn)一個(gè)'管理擴(kuò)展'的小圖標(biāo)。
這個(gè)時(shí)候點(diǎn)擊'管理擴(kuò)展'的小圖標(biāo),就會(huì)看到Selenium IDE插件。默認(rèn)是隱藏的,設(shè)置一下顯示就會(huì)展示到工具欄上。
下面是Selenium IDE插件已經(jīng)顯示在瀏覽器工具欄上面的效果。
之后,我們點(diǎn)擊瀏覽器工具欄上面的Selenium IDE插件圖標(biāo)就可以直接啟動(dòng)了。
接下來(lái)我們可以創(chuàng)建一個(gè)測(cè)試項(xiàng)目,我們這里選擇第一個(gè)'創(chuàng)建新的項(xiàng)目并記錄測(cè)試',記錄其實(shí)就是錄制腳本。
下面在出現(xiàn)的輸入框中分別輸入測(cè)試項(xiàng)目的名稱和開(kāi)始的網(wǎng)頁(yè)地址,這里我們來(lái)錄制一下百度的地址。
這里需要注意的是,輸入開(kāi)始的基礎(chǔ)網(wǎng)頁(yè)地址時(shí)前面必須填寫(xiě)IP協(xié)議的前綴,比如:'https://'。
在腳本錄制完成后,下面的Commond區(qū)域內(nèi)容就是錄制的操作過(guò)程的執(zhí)行步驟。點(diǎn)擊上面的三角形的開(kāi)始按鈕就可以再次回放執(zhí)行過(guò)程了。
最后,就是將我們錄制的腳本直接導(dǎo)出為python或者Java等編程語(yǔ)言的代碼塊了,導(dǎo)出代碼塊后我們可以對(duì)源代碼進(jìn)行優(yōu)化修改。
這里支持三種編程語(yǔ)言的源代碼導(dǎo)出操作,分別是Java/Python/C#三種編程語(yǔ)言的導(dǎo)出。
由于我們主要使用的是python作為編程語(yǔ)言,這里導(dǎo)出的是python相關(guān)的代碼塊。
# 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 TestTest2():
def setup_method(self, method):
self.driver = webdriver.Chrome()
self.vars = {}
def teardown_method(self, method):
self.driver.quit()
def wait_for_window(self, timeout=2):
time.sleep(round(timeout / 1000))
wh_now = self.driver.window_handles
wh_then = self.vars["window_handles"]
if len(wh_now) > len(wh_then):
return set(wh_now).difference(set(wh_then)).pop()
def test_test2(self):
self.driver.get("https://www.baidu.com/")
self.driver.set_window_size(1057, 808)
self.driver.find_element(By.ID, "kw").click()
self.driver.find_element(By.ID, "kw").send_keys("Python")
self.driver.find_element(By.CSS_SELECTOR, ".bdsug-s").click()
self.driver.find_element(By.ID, "su").click()
self.vars["window_handles"] = self.driver.window_handles
self.driver.find_element(By.LINK_TEXT, "Python 集中營(yíng)的博客_CSDN博客-python,java算法,框架領(lǐng)域...").click()
self.vars["win8739"] = self.wait_for_window(2000)
self.driver.switch_to.window(self.vars["win8739"])
self.vars["window_handles"] = self.driver.window_handles
self.driver.find_element(By.CSS_SELECTOR, "div:nth-child(1) > .blog-list-box h4").click()
self.vars["win5468"] = self.wait_for_window(2000)
self.driver.switch_to.window(self.vars["win5468"])
self.driver.find_element(By.CSS_SELECTOR, ".blog_extension_card_cont_l > .text").click()
self.driver.find_element(By.CSS_SELECTOR, ".blog_weixin_box_btn > span").click()
self.driver.find_element(By.ID, "blog_weixin_box_close").click()
在導(dǎo)出python代碼塊完成后,我們可以直接將python代碼塊放到開(kāi)發(fā)工具中,若是缺少相關(guān)模塊的話可以使用pip的方式安裝一下。
pip install pytest
pip install selenium
「Python 集中營(yíng)」,只做知識(shí)分享 !
python數(shù)據(jù)清洗:pandas如何完成對(duì)Excel數(shù)據(jù)類型的轉(zhuǎn)換!
聯(lián)系客服