《最新出爐》系列初窺篇-Python+Playwright 自動化測試-4-playwright 等待淺析

北京-宏哥發表於2024-11-06

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"

好了,今天時間也不早了,宏哥就講解和分享到這裡,感謝您耐心的閱讀,希望對您有所幫助。

相關文章