《最新出爐》系列初窺篇-Python+Playwright 自動化測試-4-playwright 等待淺析
1.簡介
有些小夥伴或者童鞋們私信留言說自己是在公司區域網辦公,或者公司為了安全對網路管控比較嚴格(尤其是一些大的國企、央企),總之就是一句話無法連到外網去線上下載,宏哥剛看到留言時覺得這問題還留言問啊,你找個有網的電腦下載好安裝包然後安裝就可以用了。(第一種情況及解決辦法:帶要搭建環境的電腦到有網的地方線上安裝即可。第二種情況及解決辦法:如果電腦無法帶到有網的地方進行線上安裝,那就用別的電腦下載好安裝包,用 U 盤將安裝包複製到要搭建的電腦安裝即可。),相信絕大多數遇到的都是第二種情況。第一種情況就不問宏哥了。後來宏哥就按第二種情況的思路實踐了一下,為了避免小夥伴或者童鞋們走宏哥的老路踩坑,於是就覺得水一篇教大家在本地區域網部署好 playwright 環境的文章。
2.本地下載 playwright
2.1 單個下載離線包
1.第二種情況:要搭建的電腦無法訪問外網,也不能將電腦帶到有網路的地方進行線上安裝 playwright 環境。那就只能找個可以訪問外網的電腦進行下載 playwright,但是要注意:不要去 pypi 庫單獨下載這一個包,因為它在安裝過程中還會下載其他依賴包。但是如果你只下載一個playwright-1.32.1-py3-none-win_amd64.whl
,然後使用 pip 安裝肯定會失敗。那麼宏哥說一下正確的方法:透過 pip download playwright
下載安裝包。
下載單個離線包:下載單個離線包: pip download -d 資料夾名或者路徑
pip download playwright -d ./down
其中 -d 引數是指定下載安裝到本地 down 目錄。
正常情況下會下載以下四個包,如下圖所示:
3.如果你還需要有其他的包需要下載,也可以按上面方式下載,比如 pytest,allure-pytest 等包。
2.2 批次下載離線包
確認依賴包名與版本:在其他環境中找到要安裝的依賴包名及版本並匯出:pip freeze > requirements.txt,requirements.txt 中即為要的包資訊。就以上邊的 playwright 包為例。本地已經安裝了一些依賴包了,可以透過pip freeze > requirements.txt
, 匯出本地的全部依賴包到 requirements.txt 檔案。
1.進入依賴包的資料夾中,輸入命令: pip freeze > requirements.txt 。 如下圖所示:
2.進入資料夾檢視 requirements.txt 檔案內容如下:
greenlet==2.0.1
playwright==1.33.0
pyee==9.0.4
typing-extensions==4.5.0
或許有的小夥伴或者童鞋們匯出和宏哥不一樣,比宏哥多好多,沒有關係的,因為這個命令匯出的本地的全部依賴包,也許你之前安裝過其他依賴包,因此會和宏哥不一樣,而且比宏哥的多。
3.再透過 download 命令下載全部
pip download -r requirements.txt -d ./down
3.離線安裝
3.1 單個離線安裝
安裝單個離線包: pip install --no-index --find-links=/資原始檔夾/
1.把前面下載的 down 檔案下全部包上傳到你區域網的電腦上。本地離線單個安裝依賴包
pip install --no-index --find-links=D:\software\Python\Python37\Lib\site-packages -r greenlet-2.0.1-cp37-cp37m-win_amd64.whl
2.按照上邊的命令將 4 個包,一一安裝即可。
3.2 批次離線安裝
批次安裝離線包:pip install --no-index --find-links=/資原始檔夾/ -r requirements.txt
1.把前面下載的 down 檔案下全部包,以及 requirements.txt 檔案上傳到你區域網的電腦上。本地離線批次安裝依賴包
pip install --no-index --find-links=D:\software\Python\Python37\Lib\site-packages -r requirements.txt
2.只要你 requirements.txt 檔案的包和下載的包是一一對應的,上面的安裝就不會報錯了。
到這一步 playwright 的基本環境就已經安裝完成了。
4.離線安裝瀏覽器
4.1 離線安裝 chromium,firefox 和 webkit
如果你有安裝 chromium,firefox 和 webkit 這 3 個官方提供的內建瀏覽器的需求,我們先看去哪裡下載到這 3 個瀏覽器, 在終端執行以下命令
playwright install --dry-run
它會根據你當前安裝的 playwright(我當前版本是 1.33.0)版本,給出對應的瀏覽器最近匹配版本,以及下載地址
4.2 安裝 chromium
這個和線上安裝一樣,就是下載對應的安裝包,然後安裝到線上安裝瀏覽器的那個路徑下即可。
1.以 chromium 安裝為例,從上邊的 docs 命令視窗我們可以清楚的看到 chromium 的 Download url: https://image.baidu.com/search/down?url=https://playwright.azureedge.net/builds/chromium/1060/chromium-win64.zip
2.先下載: https://image.baidu.com/search/down?url=https://playwright.azureedge.net/builds/chromium/1060/chromium-win64.zip
3.下載後是一個 chromium-win64.zip 壓縮包。
4.接著看 Install location 安裝位置:C:\Users\DELL\AppData\Local\ms-playwright\chromium-1060按照這個路徑依次建立資料夾,把壓縮包放到 chromium-1060 下解壓即可
5.還有個 ffmpeg 包也需要按上面的路徑正確解壓,此包跟錄製影片有關。
6.這樣你本地就有了對應的 chromium,firefox 和 webkit 環境。在 ms-playwright 目錄下有以下四個檔案
5.本地瀏覽器
有些小夥伴或者是童鞋們,覺得太麻煩想使用本地安裝的瀏覽器也是可以的。以 Chrome 為例。
5.1 啟動本地 Chrome 瀏覽器
1.首先你確保在你自己本機電腦上安裝了 chrome 瀏覽器,並且安裝是按預設的安裝路徑。
2.那麼在啟動的時候,只需指定channel='chrome'
就可以啟動本地 chrome 瀏覽器了。
# coding=utf-8🔥
# 1.先設定編碼,utf-8可支援中英文,如上,一般放在第一行
# 2.註釋:包括記錄建立時間,建立人,專案名稱。
'''
Created on 2023-05-18
@author: 北京-宏哥 QQ交流群:705269076
Project: 《最新出爐》系列初窺篇-Python+Playwright自動化測試-3-離線搭建playwright環境
'''
# 3.匯入模組
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
'''預設為無頭瀏覽器方式啟動 '''
browser = p.chromium.launch(channel='chrome', headless=False) # 啟動 chrome 瀏覽器
page = browser.new_page() # 開啟一個標籤頁
page.goto("https://image.baidu.com/search/down?url=https://www.baidu.com") # 開啟百度地址
print(page.title()) # 列印當前頁面title
page.click("input[name=\"wd\"]") # 點選輸入框
page.fill("input[name=\"wd\"]", "webkit") # 在輸入框輸入瀏覽器名字
# page.screenshot(path=f'example-{p.webkit.name}.png') #使用瀏覽器名字命名截圖
browser.close() # 關閉瀏覽器物件
6.小結
如果在啟動 Chrome 時遇到以下報錯,說明你瀏覽器沒正確安裝,重新安裝一次 chrome 瀏覽器,按預設的路徑安裝即可。
playwright._impl._api_types.Error: Chromium distribution 'chrome' is not found at C:\Users\dell\AppData\Local\Google\Chrome\Application\chrome.exe Run "playwright install chrome"
好了,今天時間也不早了,宏哥就講解和分享到這裡,感謝您耐心的閱讀,希望對您有所幫助。
相關文章
- 《最新出爐》系列初窺篇-Python+Playwright自動化測試-37-如何截圖-上篇Python
- 《最新出爐》系列初窺篇-Python+Playwright自動化測試-19-處理滑鼠拖拽-中篇Python
- 《最新出爐》系列初窺篇-Python+Playwright自動化測試-20-處理滑鼠拖拽-下篇Python
- 《最新出爐》系列初窺篇-Python+Playwright自動化測試-17-處理滑鼠懸停Python
- 《最新出爐》系列初窺篇-Python+Playwright自動化測試-31-JavaScript的呼叫執行-上篇PythonJavaScript
- 《最新出爐》系列初窺篇-Python+Playwright自動化測試-32-JavaScript的呼叫執行-下篇PythonJavaScript
- 《最新出爐》系列初窺篇-Python+Playwright 自動化測試-1-環境準備與搭建Python
- 《最新出爐》系列初窺篇-Python+Playwright 自動化測試-3-離線搭建 playwright 環境Python
- 《最新出爐》系列初窺篇-Python+Playwright自動化測試-23-處理select下拉框-下篇Python
- 《最新出爐》系列初窺篇-Python+Playwright 自動化測試-2-playwright 的 API 及其他知識PythonAPI
- 《最新出爐》系列初窺篇-Python+Playwright自動化測試-35-處理web頁面定位toast-上篇PythonWebAST
- 《最新出爐》系列初窺篇-Python+Playwright自動化測試-36-處理web頁面定位toast-下篇PythonWebAST
- 《最新出爐》系列初窺篇-Python+Playwright自動化測試-28-處理日曆時間控制元件-上篇Python控制元件
- 《最新出爐》系列初窺篇-Python+Playwright自動化測試-29-處理日曆時間控制元件-中篇Python控制元件
- 《最新出爐》系列初窺篇-Python+Playwright自動化測試-30-處理日曆時間控制元件-下篇Python控制元件
- 《最新出爐》系列初窺篇-Python+Playwright自動化測試-25-處理單選和多選按鈕-中篇Python
- 《最新出爐》系列初窺篇-Python+Playwright自動化測試-24-處理單選和多選按鈕-上篇Python
- 《最新出爐》系列初窺篇-Python+Playwright自動化測試-26-處理單選和多選按鈕-下篇Python
- 《最新出爐》系列初窺篇-Python+Playwright自動化測試-27-處理單選和多選按鈕-番外篇Python
- 《最新出爐》系列初窺篇-Python+Playwright自動化測試-33-處理https 安全問題或者非信任站點-上篇PythonHTTP
- 《最新出爐》系列初窺篇-Python+Playwright自動化測試-34-處理https 安全問題或者非信任站點-下篇PythonHTTP
- 《最新出爐》系列入門篇-Python+Playwright自動化測試-40-錄製生成指令碼Python指令碼
- 自動化測試系列 —— UI自動化測試UI
- 淺談自動化測試
- 自動化測試系列(三)|UI測試UI
- 測試開發之自動化篇-自動化測試框架設計框架
- Robot Framework 自動化測試--部署篇Framework
- 淺談自動化測試框架開發框架
- 效能自動化測試工具Loadrunner篇
- JB測試之旅-淺談自動化知識
- [原創]淺談Web UI自動化測試WebUI
- 淺談自動化測試功能模組的分解
- 【自動化測試入門】自動化測試思維
- Django初級手冊5-自動化測試Django
- Web自動化測試 五 ----- selenium的等待和切換Web
- Python Selenium自動化測試框架 元素等待機制Python框架
- ATT&CK攻防初窺系列--執行篇(二)
- ATT&CK攻防初窺系列--執行篇(一)