程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

【Python自動化測試27】Web自動化測試理論、環境搭建及常見操作

編輯:Python

文章目錄

  • 一、前言
  • 二、Web自動化測試詳解
    • 2.1 什麼是Web自動化測試
    • 2.2 selenium安裝與環境搭建
      • 2.2.1 安裝基礎依賴與步驟
      • 2.2.2 Webdriver下載
      • 2.2.3 安裝成功檢驗
    • 2.3 selenium基本使用
    • 2.4 selenium元素定位
      • 2.4.1 什麼是元素定位?
      • 2.4.2 元素定位方式
      • 2.4.3 通過元素定位實現百度搜索

一、前言

本文章主要會講解Python中Web自動化測試基礎理論、Webdriver環境搭建以及一些自動化測試的基本常見操作等,除此之外下方有系列文章的傳送門,還在持續更新中,感興趣的小伙伴也可以前往查看,話不多說,讓我們一起看看吧~

系列文章:
系列文章1:【Python自動化測試1】遇見Python之美
系列文章2:【Python自動化測試2】Python安裝配置及PyCharm基本使用
系列文章3:【Python自動化測試3】初識數據類型與基礎語法
系列文章4:【Python自動化測試4】字符串知識總結
系列文章5:【Python自動化測試5】列表與元組知識總結
系列文章6:【Python自動化測試6】字典與集合知識總結
系列文章7:【Python自動化測試7】數據運算符知識合集
系列文章8:【Python自動化測試8】流程控制語句講解
系列文章9:【Python自動化測試9】函數知識合集
系列文章10:【Python自動化測試10】文件基礎操作
系列文章11:【Python自動化測試11】模塊、包與路徑知識合集
系列文章12:【Python自動化測試12】異常處理機制知識合集
系列文章13:【Python自動化測試13】類、對象、屬性與方法知識合集
系列文章14:【Python自動化測試14】Python自動化測試基礎與進階練習題
系列文章15:【Python自動化測試15】unittest測試框架的核心概念與作用
系列文章16:【Python自動化測試16】測試用例數據分離
系列文章17:【Python自動化測試17】openpyxl二次封裝與數據驅動
系列文章18:【Python自動化測試18】配置文件解析與實際應用
系列文章19:【Python自動化測試19】日志系統logging講解
系列文章20:【Python自動化測試20】接口自動化測試框架模型搭建
系列文章21:【Python自動化測試21】接口自動化測試實戰一_接口概念、項目簡介及測試流程問答
系列文章22:【Python自動化測試22】接口自動化測試實戰二_接口框架修改及用例優化
系列文章23:【Python自動化測試23】接口自動化測試實戰三_動態參數化與數據偽造
系列文章24:【Python自動化測試24】接口自動化測試實戰四_Python操作數據庫
系列文章25:【Python自動化測試25】接口自動化測試實戰五_數據庫斷言、接口關聯及相關管理優化
系列文章26:【Python自動化測試26】接口自動化測試實戰六_pytest框架+allure講解

二、Web自動化測試詳解

2.1 什麼是Web自動化測試

什麼是Web自動化測試?通俗易懂的說,Web自動化測試就是通過代碼或工具的方式代替人工的測試操作,屬於模擬人工操作,Web自動化測試有很多工具,也有很多方式,主要有seleniumcypressplaywright等,selenium目前最主流,使用selenium的優勢也有很多:

""" selenium的優勢 1、selenium資料豐富,當有疑問和困難時可以隨時進行資料查找 2、selenium相對而言比較好找工作,HR更願意選擇會主流工具、框架的測試工程師 3、支持多語言(Java / Python / go / js) 4、支持遠程,以及多浏覽器 5、行業目前的首選,行業主流 """

2.2 selenium安裝與環境搭建

2.2.1 安裝基礎依賴與步驟

selenium的安裝需要一定的依賴,這是安裝selenium進行自動化測試的必須條件,主要有三點依賴:

""" selenium安裝依賴: 1、浏覽器 (建議谷歌Chrome / 火狐) 2、selenium webdriver 3、python binding """
""" selenium安裝步驟: 1、pip install selenium 2、下載Webdriver,Chrome浏覽器通過官方下載或者鏡像下載,和浏覽器的版本對應 (目前經過測試已知的71版本是兼容性非常強的版本) 3、放入Python安裝目錄或者其他任何地方 """

2.2.2 Webdriver下載


驅動下載:


谷歌浏覽器對應驅動版本以及下載鏈接:

超級好用的國內鏡像源:chrom浏覽器國內鏡像源

chrome歷史版本:chrom歷史版本

谷歌官方版本:chrom官方版本


Edge浏覽器對應驅動版本以及下載鏈接:

Edge浏覽器:Edge浏覽器


IE浏覽器對應驅動版本以及下載鏈接:

IE官方版本:Github官方版本


Safari浏覽器對應驅動版本以及下載鏈接:

Safari浏覽器:Safari浏覽器


注意事項:

驅動必須和浏覽器的版本兼容,例如浏覽器版本為71,那就下載71的驅動

下載完成後放入到對應的Python根目錄

2.2.3 安裝成功檢驗

安裝完成後,我們需要先檢驗一下是否有安裝成功,可以輸入如下代碼並運行,查看是否安裝成功:

# 導入 selenium包
from selenium import webdriver
# 打開Google浏覽器, Chrome首字母大寫
driver = webdriver.Chrome()

2.3 selenium基本使用

先簡單了解一些關於自動化測試中的selenium的基本使用語法,語法是固定語法,牢記即可

# 導入 selenium包
from selenium import webdriver
# 打開Google浏覽器, Chrome首字母大寫
driver = webdriver.Chrome()
# 窗口最大化,這裡需要特別注意,通常而言在我們打開一個浏覽器後,第一步的首要操作就是最大化窗口,以防止元素出現定位失敗的情況
driver.maximize_window()
# 使用get方式請求百度頁面
driver.get("https://www.baidu.com")
# 打印現在的浏覽器地址
print(driver.current_url)
# 獲取網頁標題
print(driver.title)
# 進入另外一個網站
driver.get("https://www.iqiyi.com")
# 後退
driver.back()
# 前進
driver.forward()
# 刷新
driver.refresh()
# 關閉當前窗口
driver.close()
# 關閉整個浏覽器且同時關閉驅動chromedriver
driver.quit()

2.4 selenium元素定位

2.4.1 什麼是元素定位?

我們需要進行元素定位前需要先了解什麼是元素,元素就是開發人員在網頁進行布局所自定義的一個標記,我們可以通過開發標記的元素來找到特定的精准位置,這個流程稱之為元素定位, 好比要使用自動化軟件控制輸入,首要步驟就算先找到輸入框,而後才能進行輸入操作,在執行點擊、雙擊、拖拽等各類模擬人工操作前,我們都需要先進行元素定位

2.4.2 元素定位方式

selenium中主要有8大元素定位方式,參考如下所示:

""" selenium八大元素定位方式: 1、id 2、name 3、class name 4、link text 5、partial link text 6、tag name 7、xpath 8、css selector """
""" 實際上有30種定位方式,但在絕大多數的情況下,使用這8種方式就能夠精准定位 """

元素定位的方式很簡單,以百度的輸入框為例,主要有二種定位方式,下面筆者只有其中一種方式進行截圖介紹:

""" 方式一: 1、進入到百度頁面時按選F12 2、點擊檢查元素箭頭,再次點擊文本輸入框的位置 3、查看元素結果 -- 選中後在谷歌浏覽器默認會有一行淡藍色或其他顏色的特殊標記 方式二: 1、進入到百度頁面時右鍵文本輸入框 2、選中"檢查"按鈕 -- 選中後自動定位到對應行 """

2.4.3 通過元素定位實現百度搜索

通過元素定位實現百度搜索,具體采取元素的方式需要依據實際情況決定,在本次搜索中,百度的搜索框能夠查看到id元素,故此我們使用id元素定位即可,有興趣的同學也可以嘗試已有的其他方式:

""" 實現思路: 1、初始化浏覽器 2、打開百度界面 3、定位百度文本輸入框 4、輸入數據 5、點擊百度一下按鈕 """
import time
from selenium import webdriver
# 初始化一個谷歌浏覽器
driver = webdriver.Chrome()
# 打開百度一下界面
driver.get("https://www.baidu.com")
# 最大化窗口
driver.maximize_window()
# 通過元素id,值為kw定位百度一下的文本輸入框
input_text = driver.find_element("id", "kw")
# 輸入文本
input_text.send_keys("如何迎娶白富美走向人生巅峰")
# 通過元素id,值為su定位百度一下按鈕
baidu_button = driver.find_element("id", "su")
# 點擊"百度一下"按鈕
baidu_button.click()
# 強制等待3秒鐘
time.sleep(3)
# 關閉浏覽器
driver.quit()


好啦~以上就是本次文章分享的全部內容啦,你學會了嗎?希望能給大家帶來幫助哦!



  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved