主頁 >  其他 > Python + Selenium,分分鐘搭建 Web 自動化測驗框架!

Python + Selenium,分分鐘搭建 Web 自動化測驗框架!

2023-05-09 08:13:26 其他

在程式員的世界中,一切重復性的作業,都應該通程序式自動執行,「自動化測驗」就是一個最好的例子,

隨著互聯網應用開發周期越來越短,迭代速度越來越快,只會點點點,不懂開發的手工測驗,已經無法滿足如今的業務要求,只能被企業逐步裁員淘汰,「自動化測驗和持續測驗」就成為了業界主流

如果在招聘網站搜索「測驗工程師」的職位,95% 的招聘都會有「掌握自動化測驗以及 Python」的相關要求,可以說,Python 自動化已經不是加分項了,而成了面試成功的必備技能,

 

所以,如果你正準備入行或者轉崗做測驗工程師的作業,Python 自動化測驗將是必學技能之一,

Python + Selenium

說到自動化測驗,就不得不提大名鼎鼎的Selenium,Selenium 是如今最常用的自動化測驗工具之一,支持快速開發自動化測驗框架,且支持在多種瀏覽器上執行測驗,

Selenium學習難度小,開發周期短,對測驗人員來說,如果你編程經驗不足,python + Selenium 是個很好的選擇,語法簡約,清晰,可以顯著減少后期維護難度和作業壓力,

今天,我們就介紹一下如何用 Selenium 快速開始 Web 測驗作業!

(以下內容出自實驗樓課程——「Python 自動化測驗實戰」,歡迎大家來實驗樓邊敲代碼邊練習!)

Selenium 基礎知識

本節課程介紹 Selenium 的功能作用及安裝、環境配置,并介紹 Selenium 常用的語法,

知識點

Selenium 介紹
安裝 Selenium
安裝 geckodriver 瀏覽器驅動
Selenium 的元素定位
點擊元素
清空文本輸入框、向文本輸入框輸入文本
獲取元素屬性
下拉頁面
頁面彈窗的定位以及彈窗文本的獲取
視窗跳轉
iframe 定位

安裝需要的庫:

sudo pip3 install --upgrade pip
sudo pip3 install selenium

實驗環境

Firefox 瀏覽器
python 3.5
geckodriver 0.22.0
selenium 3

實驗步驟

Selenium 在進行回歸測驗的時候會被經常用到,接下來我們就學習 Selenium 的知識,當我們進入selenium 官網時可以看到,網站的 title 上寫的是 Selenium - Web Browser Automation,翻譯過來就是網站瀏覽器自動化,也就是說我們把平時在網頁上做的功能測驗用 Selenium 代碼實作,這樣在回歸測驗的時候就可以達到省時省力的目的,Selenium 在作業中的應用常見于功能基本穩定、沒有頻繁大變動的網頁,所以我們一般是在業務功能上線以后,為確保頁面穩定,用 Selenium 實作自動化回歸測驗,結合 git、Jenkins 一起,每當有新功能上線時都會執行寫好的 Selenium 代碼以驗證新上線的業務對原有頁面功能沒有造成影響,如有報錯,則發送相應的通知,這樣就可以確保對線上功能出現的未預期 bug 進行及時的修復,

安裝 Selenium

在 xfce 中輸入sudo pip3 install selenium安裝最新版本的 Selenium,

瀏覽器、geckodriver

既然名為網頁瀏覽器自動化自然要安裝瀏覽器,一般來說,Chrome、Firefox等瀏覽器都可以,這里我們使用當前系統自帶的Firefox作為實驗瀏覽器,現在我們需要下載對應的瀏覽器驅動geckodriver,在xfce中輸入以下命令:

$ wget https://labfile.oss.aliyuncs.com/courses/1163/geckodriver-v0.22.0-linux64.tar.gz

下載成功后繼續輸入:

$ tar zxvf geckodriver-v0.22.0-linux64.tar.gz
$ sudo mv geckodriver /usr/local/bin

以上操作為:將檔案解壓,并移動至/usr/local/bin檔案夾中,

 將目錄切換至桌面:

$ cd /home/shiyanlou/Desktop

下面我們來驗證是否正常安裝,在終端使用命令vim demo.py創建檔案并寫入代碼:

#! /usr/bin/python3
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("https://www.shiyanlou.com")

輸入python3 demo.py如果瀏覽器打開并進入實驗樓網站,則環境配置就成功了,

 

瀏覽器操作

在終端使用命令vim demo2.py創建檔案并寫入代碼:

#! /usr/bin/python3

from selenium import webdriver
from time import sleep


driver = webdriver.Firefox()

# 瀏覽器進入百度網站
driver.get("https://www.baidu.com")

# 設定瀏覽器寬800,高400
driver.set_window_size(800, 400)

# 等待3秒
sleep(3)

# 重繪頁面
driver.refresh()

# 等待3秒
sleep(3)

# 最大化視窗
driver.maximize_window()

# 退出瀏覽器
driver.quit()

- name: check file
  script: |
    #!/bin/bash
    ls /home/shiyanlou/Desktop/demo2.py
  error:
    還沒有在 /home/shiyanlou/Desktop 目錄下新建 demo2.py 檔案

以上代碼會在瀏覽器中執行:

打開瀏覽器
進入百度網站
設定視窗大小為寬 800,高 400
等待 3 秒
重繪頁面
最大化視窗
退出瀏覽器

演示

這里我們使用51Testing 軟體測驗論壇作為演示網站,如果大家沒有賬號需要先去注冊一個,下面的代碼將會使用到賬號資訊,在終端使用命令vim demo3.py創建檔案并寫入代碼:

#! /usr/bin/python3
from selenium import webdriver
from time import sleep
driver = webdriver.Firefox()
# 進入51testing網站driver.get("http://bbs.51testing.com/forum.php")
sleep(3)

# 用id定位賬號輸入框并輸入賬號
driver.find_element_by_id("ls_username").send_keys("您的用戶名")

# 用id定位密碼輸入框并輸入密碼
driver.find_element_by_id("ls_password").send_keys("密碼")

# 定位“登錄”按鈕并獲取登錄按鈕的文本
txt = driver.find_element_by_xpath('//*[@id="lsform"]/div/div[1]/table/tbody/tr[2]/td[3]/button').text

# 列印獲取的文本
print(txt)

# 定位“登錄”按鈕并獲取登錄按鈕的type屬性值
type = driver.find_element_by_xpath('//*[@id="lsform"]/div/div[1]/table/tbody/tr[2]/td[3]/button').get_attribute("type")

# 列印type屬性值
print(type)

# 定位“登錄”按鈕并進行點擊操作
driver.find_element_by_xpath('//*[@id="lsform"]/div/div[1]/table/tbody/tr[2]/td[3]/button').click()

在終端執行python3 demo3.py運行,結果顯示如下:頁面顯示:

 執行以上代碼后會在 xfce 中輸出如下資訊:

最后感謝每一個認真閱讀我文章的人,作為一位過來人也是希望大家少走一些彎路,在這里我給大家分享一些自動化測驗的學習資源,如果你用得到的話可以直接拿走,希望能給你前進的路上帶來幫助,(包括Python編程、WEB自動化測驗、app自動化測驗、介面自動化測驗、測驗框架、持續集成、自動化測驗開發、性能測驗、安全測驗、大廠面試真題、簡歷模板等等、當然還有一些測驗基礎、工具、app測驗、介面測驗、linux、mysql資料庫等基礎知識),相信能使你更好的進步!這些學習資料我都放在我的測驗學習交流裙:1033482984 里面了,同時還有幾千個行業大佬相互進行技術交流、經驗分享,如果你也感興趣,那么期待你的加入,

 

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/551948.html

標籤:其他

上一篇:3年測驗越來越迷茫... 技術跟不上接下來是不是要被淘汰了?

下一篇:返回列表

標籤雲
其他(158671) Python(38123) JavaScript(25405) Java(18024) C(15222) 區塊鏈(8262) C#(7972) AI(7469) 爪哇(7425) MySQL(7171) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5871) 数组(5741) R(5409) Linux(5336) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4567) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2432) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1965) Web開發(1951) HtmlCss(1932) python-3.x(1918) 弹簧靴(1913) C++(1912) xml(1889) PostgreSQL(1874) .NETCore(1857) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • Python + Selenium,分分鐘搭建 Web 自動化測驗框架!

    在程式員的世界中,一切重復性的作業,都應該通程序式自動執行。「自動化測驗」就是一個最好的例子。 隨著互聯網應用開發周期越來越短,迭代速度越來越快,只會點點點,不懂開發的手工測驗,已經無法滿足如今的業務要求,只能被企業逐步裁員淘汰。「自動化測驗和持續測驗」就成為了業界主流。 如果在招聘網站搜索「測驗工 ......

    uj5u.com 2023-05-09 08:13:26 more
  • 3年測驗越來越迷茫... 技術跟不上接下來是不是要被淘汰了?

    這兩天和朋友聊到了軟體測驗的發展:這一行的變化確實蠻大,從開始最基礎的功能測驗,到現在自動化、性能、安全乃至于以后可能出現的大資料測驗、AI測驗崗位需求逐漸增多。我也在軟體測驗這行摸爬滾打有些日子了,正好有朋友問我:如何快速成為互聯網時代優秀的測驗工程師呢?趁著最近終于有了些閑余時間,遂總結了下自動 ......

    uj5u.com 2023-05-09 08:13:17 more
  • 環形佇列的實作 [詳解在代碼中]

    1 package DataStructures.Queue.Array.Exerice; 2 3 /** 4 * @author Loe. 5 * @project DataStructures&Algorithms 6 * @date 2023/5/8 7 * @ClassInfo 環形佇列 8 ......

    uj5u.com 2023-05-09 08:13:11 more
  • 5分鐘實作呼叫ChatGPT介面API實作多輪問答

    5分鐘實作呼叫ChatGPT介面API完成多輪問答 最近ChatGPT也是火爆例外啊,在親自使用了幾個月之后,我發現這東西是真的好用,實實在在地提高了生產力。那么對于開發人員來說,有時候可能需要在自己的代碼里加入這樣一個智能問答的功能,我最近就出現了這樣的想法和需求,所以簡單研究了一下。網上類似的方 ......

    uj5u.com 2023-05-09 08:12:59 more
  • 云原生周刊:Kubernetes 1.27 服務器端欄位校驗和 OpenAPI V3 進階

    開源專案推薦 KubeView KubeView 是一個 Kubernetes 集群可視化工具和可視化資源管理器。它允許用戶在集群內部運行命令,并查看集群內部的資源使用情況、容器運行狀態、網路流量等。KubeView 支持多種資料源,可以讀取 Prometheus、Grafana、Kubernete ......

    uj5u.com 2023-05-09 08:12:52 more
  • 記一次springboot專案漏洞挖掘

    前段時間的比賽將該cms作為了題目考察,這個cms的洞也被大佬們吃的差不多了,自己也就借此機會來淺淺測驗下這個cms殘余漏洞,并記錄下這一整個流程,謹以此記給小白師傅們分享下思路,有錯誤的地方還望大佬們請以指正。 ......

    uj5u.com 2023-05-09 08:11:08 more
  • 讀書筆記丨理解和學習事務,讓你更好地融入云原生時代

    摘要:分布式事務與云原生技術有很強的關聯,可以幫助云原生應用程式實作高效的分布式事務處理。 本文分享自華為云社區《理解和學習事務,讓你更好地融入云原生時代》,作者: breakDawn。 隨著云原生的概念越來越火,服務的架構應該如何發展和演進,成為很多程式員關心的話題。大名鼎鼎的《深入理解java虛 ......

    uj5u.com 2023-05-09 08:09:49 more
  • 一分鐘學會、三分鐘上手、五分鐘應用,快速上手責任鏈框架詳解 |

    責任鏈模式是開發程序中常用的一種設計模式,在SpringMVC、Netty等許多框架中均有實作。我們日常的開發中如果要使用責任鏈模式,通常需要自己來實作,但自己臨時實作的責任鏈既不通用,也很容易產生框架與業務代碼耦合不清的問題,增加Code Review 的成本。 ......

    uj5u.com 2023-05-09 08:09:38 more
  • 昇騰實戰丨DVPP媒體資料處理視頻解碼問題案例

    摘要:本期就分享幾個關于DVPP視頻解碼問題的典型案例,并給出原因分析及解決方法 本文分享自華為云社區《DVPP媒體資料處理視頻解碼問題案例》,作者:昇騰CANN 。 DVPP(Digital Vision Pre-Processing)是昇騰AI處理器內置的影像處理單元,通過AscendCL媒體數 ......

    uj5u.com 2023-05-09 08:09:30 more
  • 6年測開經驗,從功能測驗到測驗開發,每一步都深思熟慮...

    ?驀然回首,軟體測驗風風雨雨的這幾年,起初每天的作業只是滑鼠點點點,我還真不知道怎么辦,閑的時候真的懷疑自己的存在價值,每天拿著7000的工資,飄蕩在繁華的深圳,吃不飽也餓不死,未來一片茫然…… ?時間荏苒,作業越久越能體會測驗才不是這么簡單,假如只會點點滑鼠,并不能走得長遠,工資也漸漸地無法滿足生 ......

    uj5u.com 2023-05-09 08:09:23 more