?python使用selenium進行Web自動化測試?

什么是selenium

Selenium 是 ThoughtWorks 提供的一個強大的基于瀏覽器的

Selenium 是一個用于 Web 應用程序測試的工具,測試直接自動運行在瀏覽器中,就像真正的用戶在手工操作一樣。支持的瀏覽器包括 IE、Chrome 和 Firefox 等。這個工具的主要功能包括:測試與瀏覽器的兼容性 - 測試您的應用程序看是否能夠很好地工作在不同瀏覽器和操作系統之上;測試系統功能 - 創建回歸測試檢驗軟件功能和用戶需求;支持自動錄制動作,和自動生成 .NET、Perl、Python、Ruby 和 Java 等不同語言的測試腳本。

安裝python

安裝selenium

pip install selenium

檢測selenium

pip show selenium
 
  1. (venv) ? pytest pip show selenium

  2. Name: selenium

  3. Version: 4.1.0

  4. Summary:

  5. Home-page: https://www.selenium.dev

  6. Author:

  7. Author-email:

  8. License: Apache 2.0

  9. Location: /Users/terwer/Documents/PycharmProjects/pytest/venv/lib/python3.8/site-packages

  10. Requires: trio, trio-websocket, urllib3

  11. Required-by:

安裝driver

firefox

下載geckdriver

下載地址:需注意的是瀏覽器的版本和driver驅動的版本要匹配

Google chrome

(Chrome對應Chromedriver,ie對應IEdriver)

下載對應版本的壓縮包,然后解壓,解壓后的名稱都是一樣的,driver的路徑可以放在python的script的路徑下

ChromeDriver - WebDriver for Chrome - Downloads

錯誤解決

'chromedriver' executable needs to be in PATH.

找到文檔

ChromeDriver - WebDriver for Chrome - Getting started

edge

使用 WebDriver 自動執行 Microsoft Edge - Microsoft Edge Development | Microsoft Learn

python運行第一個自動化腳本

 
  1. from selenium import webdriver

  2. def print_hi(name):

  3. driver = webdriver.Chrome("./chromedriver")

  4. driver.get("https://www.baidu.com")

  5. driver.quit()

  6. print(f'Hi, {name}')

  7. if __name__ == '__main__':

  8. print_hi('Selenium')

解決自動退出

python+selenium自動化,沒有寫close和quit,瀏覽器窗口會自動關閉解決方案

加參數

option.add_experimental_option("detach", True)

完整的代碼

 
  1. # 加啟動配置

  2. option = webdriver.ChromeOptions()

  3. # 關閉“chrome正受到自動測試軟件的控制”

  4. # V75以及以下版本

  5. # option.add_argument('disable-infobars')

  6. # V76以及以上版本

  7. option.add_experimental_option('useAutomationExtension', False)

  8. option.add_experimental_option('excludeSwitches', ['enable-automation'])

  9. # 不自動關閉瀏覽器

  10. option.add_experimental_option("detach", True)

  11. driver = webdriver.Chrome("./chromedriver", chrome_options=option)

  12. driver.get("https://www.baidu.com")

  13. driver.maximize_window()

  14. # driver.quit()

edge版本

 
  1. from msedge.selenium_tools import Edge, EdgeOptions

  2. import os

  3. def start_dege():

  4. options = EdgeOptions()

  5. options.binary_location = r'/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge'

  6. options.use_chromium = True

  7. options.set_capability("platform", "Mac OS")

  8. # 不退出

  9. options.add_experimental_option("detach", True)

  10. browser = Edge(options=options, executable_path=r"/usr/local/bin/msedgedriver")

  11. browser.get('http://localhost:8090')

  12. def close_edge():

  13. os.system("killall -9 'Microsoft Edge'")

  14. print("previous Microsoft Edge is closed")

  15. if __name__ == '__main__':

  16. close_edge()

  17. start_dege()

  18. print("edge started")

全屏

 
  1. option.add_argument("--start-maximized")

  2. option.add_argument('window-size=2560,1440')

開源自動化測試工具。

感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:

?

這些資料,對于【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴上萬個測試工程師們走過最艱難的路程,希望也能幫助到你!有需要的小伙伴可以點擊下方小卡片領取???

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/12932.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/12932.shtml
英文地址,請注明出處:http://en.pswp.cn/web/12932.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2024042001-計算機網絡 - 物理層

計算機網絡 - 物理層 計算機網絡 - 物理層 通信方式帶通調制 通信方式 根據信息在傳輸線上的傳送方向,分為以下三種通信方式: 單工通信:單向傳輸半雙工通信:雙向交替傳輸全雙工通信:雙向同時傳輸 帶通調制 模擬信號…

C++基礎——繼承(下)

一、繼承與靜態成員 基類定義了static 靜態成員,則整個繼承體系里面只有一個這樣的成員。無論派生出多少個子 類,都只有一個 static 成員實例 。 class person { public:person(const char* name "lisi"):_name(name){} public:string _name;…

那些年我與c++的叫板(一)--string類自實現

引子:我們學習了c中的string類,那我們能不能像以前數據結構一樣自己實現string類呢?以下是cplusplus下的string類,我們參考參考! 廢話不多說,直接代碼實現:(注意函數之間的復用&…

Nacos+GateWay 搭建微服務架構

文章目錄 1.當前項目架構分析1.請求多個模塊的方式1.請求renren-fast模塊開發環境生產環境 2.請求sunliving-commodity模塊1.使用環境變量資源路徑的方式2.開發環境 dev.env.js3.生產環境 prod.env.js 3.文件上傳請求 sunliving-service模塊1.請求后端接口(開發環境…

當服務實例出現故障時,Nacos如何處理?

當服務實例出現故障時,Nacos的應對策略 在微服務架構日益盛行的今天,服務之間的穩定性與可靠性成為了我們架構師們不得不面對的重要課題。尤其是在面對服務實例出現故障時,如何確保整個系統的穩定運行,成為了我們首要考慮的問題。…

匯聚榮科技:拼多多上架商品后需要做頁面推廣嗎?

在電商平臺上,商品的曝光率和銷量往往成正比。那么,當您在拼多多上架了新品,是不是就意味著坐等訂單呢?答案顯然是否定的。商品一旦上架,接下來需要做的就是通過有效的頁面推廣來增加商品的可見度,吸引潛在買家的注意…

在亞馬遜上賣燈具需要什么認證,亞馬遜燈飾產品需要審核與認證嗎

LED燈具在亞馬遜美國站銷售,需要有UL認證或者UL報告、FCC,如果是帶消毒滅菌的燈,需要做EPA,歐洲站,日本站,認證只需要CE和ROHSR認證。 UL認證:本認證主要針對充電器、移動電源、手機電池、燈具…

Rust的NLL特性:讓生命周期管理更靈活

Rust的NLL特性:讓生命周期管理更靈活 Rust語言以其獨特的內存安全和并發性能受到開發者的青睞。而在Rust中,一個關鍵的概念就是“生命周期”。為了進一步優化生命周期的管理和借用檢查,Rust引入了NLL(Non-Lexical Lifetime&#…

html基礎(全)

html簡介 目錄 什么是網頁 什么是 HTML 常用瀏覽器 WebE標準的構成 基本語法概述 第一個HTML頁面 文檔類型聲明標簽 lang 語言種類 字符集 標題標簽 段落和換行標簽 文本格式化標簽 div和span標簽 圖像標簽和路徑 超鏈接標簽 表格的主要作用 表頭單元格標簽 列…

純血鴻蒙APP實戰開發——Web獲取相機拍照圖片案例

介紹 本示例介紹如何在HTML頁面中拉起原生相機進行拍照,并獲取返回的圖片。 效果預覽圖 使用說明 點擊HTML頁面中的選擇文件按鈕,拉起原生相機進行拍照。完成拍照后,將圖片在HTML的img標簽中顯示。 實現思路 添加Web組件,設置…

【SpringBoot】SpringBoot整合jasypt進行重要數據加密

📝個人主頁:哈__ 期待您的關注 目錄 📕jasypt簡介 🔥SpringBoot使用jasypt 📂創建我需要的數據庫文件 📕引入依賴 🔓配置數據庫文件(先不進行加密) 🌙創…

Anaconda安裝-超詳細版(2024)

掃盲:先裝Python還是先裝anaconda? 安裝anaconda即可,不需要單獨裝python anaconda 是一個python的發行版,包括了python和很多常見的軟件庫, 和一個包管理器conda。 一、下載Anaconda 安裝包(官網和國內鏡像資源) …

【深度學習】SDXL中的Offset Noise,Diffusion with Offset Noise,帶偏移噪聲的擴散

https://www.crosslabs.org//blog/diffusion-with-offset-noise 帶有偏移噪聲的擴散 針對修改后的噪聲進行微調,使得穩定擴散能夠輕松生成非常暗或非常亮的圖像。 作者:尼古拉斯古藤伯格 | 2023年1月30日 馬里奧兄弟使用穩定擴散挖掘隧道。左圖顯示了未…

Springboot+Vue項目-基于Java+MySQL的高校專業實習管理系統(附源碼+演示視頻+LW)

大家好!我是程序猿老A,感謝您閱讀本文,歡迎一鍵三連哦。 💞當前專欄:Java畢業設計 精彩專欄推薦👇🏻👇🏻👇🏻 🎀 Python畢業設計 &…

Linux文件:重定向底層實現原理(輸入重定向、輸出重定向、追加重定向)

Linux文件:重定向底層實現原理(輸入重定向、輸出重定向、追加重定向) 前言一、文件描述符fd的分配規則二、輸出重定向(>)三、輸出重定向底層實現原理四、追加重定向(>>)五、輸入重定向…

關于 vs2019 c++20 規范里的 STL 庫里模板 decay_t<T>

(1) 這個模板,在庫代碼里非常常見。 decay 英文是“衰弱,消減” 的意思,大概能感覺到就是要簡化模板參數 T 的類型,去掉其上的修飾符。因為常用且復雜,故單獨列出其源碼和注釋。先舉例其應用場景…

LINQ(五) ——使用LINQ進行匿名對象初始化

總目錄 C# 語法總目錄 上一篇:LINQ(四) ——使用LINQ進行對象類型初始化 LINQ 五 ——使用LINQ進行匿名對象初始化 6.2 匿名類型 6.2 匿名類型 可以不用聲明定義一個對象,直接使用new,然后直接賦值即可 string[] names { "Tom",…

動態順序表實現

目錄 1. 順序表的概念 2. 實現的功能 3. 順序表的定義 4.順序表的實現 4.1 seqlist.c 4.2 seqlist.h 4.3 test.c 5. 順序表的優缺點 5.1優點 5.2缺點 1. 順序表的概念 用一段物理地址連續的內存依次存儲數據元素的線性結構 本質就是數組,在數組基礎上要求…

從零手寫實現 tomcat-11-filter 過濾器

創作緣由 平時使用 tomcat 等 web 服務器不可謂不多,但是一直一知半解。 于是想著自己實現一個簡單版本,學習一下 tomcat 的精髓。 系列教程 從零手寫實現 apache Tomcat-01-入門介紹 從零手寫實現 apache Tomcat-02-web.xml 入門詳細介紹 從零手寫…