(3)Playwright自動化-3-離線搭建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? <package_name> -d 文件夾名或者路徑?

pip download playwright -d ./down

其中?-d?參數是指定下載安裝到本地down目錄。

?

2.正常情況下會下載以下四個包,如下圖所示:

?

?

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=/資源文件夾/ <package_name>

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://playwright.azureedge.net/builds/chromium/1060/chromium-win64.zip

2.先下載:?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.導入模塊from playwright.sync_api import sync_playwrightwith sync_playwright() as p:'''默認為無頭瀏覽器方式啟動  '''browser = p.chromium.launch(channel='chrome', headless=False)         # 啟動 chrome 瀏覽器page = browser.new_page()              # 打開一個標簽頁page.goto("https://www.baidu.com")     # 打開百度地址print(page.title())                    # 打印當前頁面titlepage.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"

?

?

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

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

相關文章

【Fiddler抓取手機數據包】

Fiddler抓取手機數據包的配置方法 確保電腦和手機在同一局域網 電腦和手機需連接同一Wi-Fi網絡。可通過電腦命令行輸入ipconfig查看電腦的本地IP地址&#xff08;IPv4地址&#xff09;&#xff0c;手機需能ping通該IP。 配置Fiddler允許遠程連接 打開Fiddler&#xff0c;進入…

PublishSubject、ReplaySubject、BehaviorSubject、AsyncSubject的區別

python容易編輯&#xff0c;因此用pyrx代替rxjava3做演示會比較快捷。 pyrx安裝命令&#xff1a; pip install rx 一、Subject&#xff08;相當于 RxJava 的 PublishSubject&#xff09; PublishSubject PublishSubject 將對觀察者發送訂閱后產生的元素&#xff0c;而在訂閱前…

BLE中心與外圍設備MTU協商過程詳解

一、MTU基礎概念?? 1. ??MTU定義?? ??最大傳輸單元&#xff08;MTU&#xff09;?? 指單次數據傳輸中允許的最大字節數&#xff0c;包含協議頭部&#xff08;3字節&#xff09;和有效載荷&#xff08;最多517字節&#xff09;。BLE默認MTU為??23字節??&a…

【華為云Astro-服務編排】服務編排使用全攻略

目錄 概述 為什么使用服務編排 服務編排基本能力 拖拉拽式編排流程 邏輯處理 對象處理 服務單元組合腳本、原生服務、BO、第三方服務 服務編排與模塊間調用關系 腳本 對象 標準頁面 BPM API接口 BO 連接器 如何創建服務編排 創建服務編排 如何開發服務編排 服…

centos實現SSH遠程登錄

1. 生成SSH密鑰對 首先&#xff0c;你需要在客戶端機器上生成一個SSH密鑰對。打開終端&#xff0c;執行以下命令 ssh-keygen 或ssh-keygen -t rsa -b 2048&#xff08;效果相同&#xff09; 按照提示操作&#xff0c;可以按回車鍵接受默認的文件名&#xff08;通常是~/.ssh/id_…

定制開發開源AI智能名片S2B2C商城小程序在無界零售中的應用與行業智能升級示范研究

摘要&#xff1a;本文聚焦無界零售背景下京東從零售產品提供者向零售基礎設施提供者的轉變&#xff0c;探討定制開發開源AI智能名片S2B2C商城小程序在這一轉變中的應用。通過分析該小程序在商業運營成本降低、效率提升、用戶體驗優化等方面的作用&#xff0c;以及其與京東AI和馮…

ZooKeeper 安裝教程(Windows + Linux 雙平臺)

ZooKeeper 安裝教程(Windows + Linux 雙平臺) Zookeeper 和 Kafka 版本與 JDK 要求 一、安裝前準備 系統要求 Java 環境(JDK17+)開放端口:2181(客戶端),2888(集群通信),3888(選舉)安裝 Java Linux(Ubuntu/CentOS) # Ubuntu

【Git系列】如何同步原始倉庫的更新到你的fork倉庫?

&#x1f389;&#x1f389;&#x1f389;歡迎來到我們的博客&#xff01;無論您是第一次訪問&#xff0c;還是我們的老朋友&#xff0c;我們都由衷地感謝您的到來。無論您是來尋找靈感、獲取知識&#xff0c;還是單純地享受閱讀的樂趣&#xff0c;我們都希望您能在這里找到屬于…

Could not obtain transaction-synchronized Session for current thread

背景 寫了一個函數&#xff0c;分別支持手動調用和定時任務調用。 測試的時候一直用手動點擊按鈕觸發函數&#xff0c;功能可用 等到了測試定時任務的時候&#xff0c;后臺報錯 Could not obtain transaction-synchronized Session for current thread錯誤分析 事務管理不匹…

linux nm/objdump/readelf/addr2line命令詳解

我們在開發過程中通過需要反匯編查看問題&#xff0c;那么我們這里使用rk3568開發板來舉例nm/objdump/readelf/addr2line 分析動態庫和可執行文件以及.o文件。 1&#xff0c;我們舉例nm/objdump/readelf/addr2line解析linux 內核文件vmlinux &#xff08;1&#xff09;,addr2…

C++自定義簡單的內存池

內存池簡述 在C的STL的容器中的容器如vector、deque等用的默認分配器(allocator)都是從直接從系統的堆中申請內存&#xff0c;用一點申請一點&#xff0c;效率極低。這就是設計內存池的意義&#xff0c;所謂內存池&#xff0c;就是一次性向系統申請一大片內存&#xff08;預分…

【極客日常】分享go開發中wire和interface配合的一些經驗

在先前一篇文章中&#xff0c;筆者給大家提到了go語言后端編程可以用wire依賴注入模塊去簡化單例服務的初始化&#xff0c;同時也可以解決服務單例之間復雜依賴的問題。但實事求是來講&#xff0c;用wire也是有一些學習成本的&#xff0c;wire在幫助解決復雜依賴的問題同時&…

20250605車充安服務器受木馬攻擊導致服務不可用

https://mp.weixin.qq.com/s/2JyxmDIDBa9_owNjIJ6UIg 因業務服務器受木馬攻擊&#xff0c;服務器網絡資源損耗&#xff0c;業務負載能力受損

web3-虛擬合約 vs 現實合同:權利、義務與資產的鏈上新秩序

web3-虛擬合約 vs 現實合同&#xff1a;權利、義務與資產的鏈上新秩序 一、智能合約vs真實世界合約 傳統合約&#xff1a;基礎要素 如下圖&#xff0c;現實世界的合約&#xff0c;會有一個條款&#xff0c;然后下面還有一個“Alice”的簽名 提出合約和接受合約&#xff1b; …

【面經分享】京東

線程池核心參數 7 個參數。 coreSize maxSize 阻塞隊列 時間 時間 線程工廠 拒絕策略 核心參數的話&#xff0c;有 coreSize、阻塞隊列、拒絕策略。 JVM 組成 內存上劃分&#xff1a; 線程私有&#xff1a;Java 虛擬機棧&#xff0c;本地方法棧、Tlab、程序計數器 …

工作流引擎-11-開源 BPM 項目 jbpm

工作流引擎系列 工作流引擎-00-流程引擎概覽 工作流引擎-01-Activiti 是領先的輕量級、以 Java 為中心的開源 BPMN 引擎&#xff0c;支持現實世界的流程自動化需求 工作流引擎-02-BPM OA ERP 區別和聯系 工作流引擎-03-聊一聊流程引擎 工作流引擎-04-流程引擎 activiti 優…

深度學習在非線性場景中的核心應用領域及向量/張量數據處理案例,結合工業、金融等領域的實際落地場景分析

一、工業場景&#xff1a;非線性缺陷檢測與預測 1. ?半導體晶圓缺陷檢測? ?問題?&#xff1a;微米級劃痕、顆粒污染等缺陷形態復雜&#xff0c;與正常紋理呈非線性關系。?解決方案?&#xff1a; ?輸入張量?&#xff1a;高分辨率晶圓圖像 → 三維張量 (Batch, Height,…

Python-線程同步

多線程 案例 說明&#xff1a; 唱歌方法 sing()跳舞方法 dance()啟用兩個線程調用主線程結束 代碼 # 導入線程模塊 import threading import timedef sing(name,age):time.sleep(2)print(唱歌者姓名&#xff1a; name &#xff0c;年齡&#xff1a; str(age))print(正在唱…

前端八股之JS的原型鏈

1.原型的定義 每一個對象從被創建開始就和另一個對象關聯&#xff0c;從另一個對象上繼承其屬性&#xff0c;這個另一個對象就是 原型。 當訪問一個對象的屬性時&#xff0c;先在對象的本身找&#xff0c;找不到就去對象的原型上找&#xff0c;如果還是找不到&#xff0c;就去…

kafka命令

kafka安裝先安裝zookeeper&#xff0c;jdk 確保jdk版本與kafka版本匹配&#xff1a; 先啟動zookeeper&#xff1a; # 啟動獨立安裝的zookeeper ./zkServer.sh start # 也可以自動kafka自帶的zookerper ./zookeeper-server-start.sh ../config/zookeeper.pr…