(3)Java+Playwright自動化測試-啟動瀏覽器

1.簡介

?前邊兩章文章已經將環境搭建好了,今天就在Java項目搭建環境中簡單地實踐一下:?啟動兩大瀏覽器。

接下來我們在Windows系統中啟動瀏覽器即可,其他平臺系統的瀏覽器類似的啟動方法,照貓畫虎就可以了。

但是在實踐過程中,發現Java語言的Playwright目前好像支持三款瀏覽器:Chrome、Firefox和Webkit,索性就全部介紹了吧。

1.1下載的瀏覽器

跟隨首先看一下,我們運行代碼下載的瀏覽器,只有三款:Chrome、Firefox和Webkit。如下圖所示:

1.2BrowserType(瀏覽器類型)

再跟隨隨,看一下代碼中提供的瀏覽器類型就三個:chromium()、firefox()和webkit(),如下圖所示:

2.啟動瀏覽器準備工作

2.1準備工作

創建一個Playwright的Java項目,用來練習,具體步驟如下:

1.打開Eclipse,創建一個名稱為vssmaventest的Java 項目,如下圖所示:

2.選擇項目,右鍵項目,選擇Build Path,然后選擇Confige Build Path...,彈出框點擊Libraries,如下圖所示:

3.這里點擊Add External JARs...,彈出框,選擇當前電腦本地之前下載好的所有與playwright相關的jar包,添加到新建的項目中,如下圖所示:

4.點擊“OK”,如下圖所示:

準備工作就介紹到這里,下邊介紹如何啟動兩大瀏覽器。

3.啟動Chrome瀏覽器

大致思路:打開Chrome瀏覽器,訪問百度網址,獲取網址的title,然后再關閉Chrome瀏覽器。根據思路進行代碼設計。

3.1代碼設計

3.2參考代碼
package vssweb;
import com.microsoft.playwright.Browser;
import com.microsoft.playwright.BrowserType;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.Playwright;public class LaunchChrome {public static void main(String[] args) {try (Playwright playwright = Playwright.create()) {Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setHeadless(false).setSlowMo(50));Page page = browser.newPage();page.navigate("https://www.baidu.com/");System.out.println(page.title());page.close();}}}
3.3運行代碼

1.運行代碼,右鍵Run AS->java Application,就可以看到控制臺輸出,如下圖所示:

2.運行代碼后即可看到會打開瀏覽器后的執行效果

4.啟動Firefox瀏覽器

大致思路和啟動Chrome瀏覽器相同:打開Firefox瀏覽器,訪問百度網址,獲取網址的title,然后再關閉Firefox瀏覽器。根據思路進行代碼設計。

4.1代碼設計
4.2參考代碼
package vssweb;import com.microsoft.playwright.Browser;
import com.microsoft.playwright.BrowserType;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.Playwright;public class LaunchFirefox {public static void main(String[] args) {try (Playwright playwright = Playwright.create()) {Browser browser = playwright.firefox().launch(new BrowserType.LaunchOptions().setHeadless(false).setSlowMo(50));Page page = browser.newPage();page.navigate("https://www.baidu.com/");System.out.println(page.title());page.close();}}}
4.3運行代碼

1.運行代碼,右鍵Run AS->java Application,就可以看到控制臺輸出,如下圖所示:

2.運行代碼后就能看到電腦端的瀏覽器的動作打開

5.啟動webkit瀏覽器

大致思路和啟動Chrome瀏覽器相同:打開webkit瀏覽器,訪問百度網址,獲取網址的title,然后再關閉webkit瀏覽器。根據思路進行代碼設計。

5.1代碼設計
5.2參考代碼
package vssweb;import com.microsoft.playwright.Browser;
import com.microsoft.playwright.BrowserType;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.Playwright;public class LaunchWebkit {public static void main(String[] args) {try (Playwright playwright = Playwright.create()) {Browser browser = playwright.webkit().launch(new BrowserType.LaunchOptions().setHeadless(false).setSlowMo(50));Page page = browser.newPage();page.navigate("https://www.baidu.com/");System.out.println(page.title());page.close();}}}
5.3運行代碼

1.運行代碼,右鍵Run AS->java Application,就可以看到控制臺輸出,如下圖所示:

6.關鍵代碼說明

package vssweb;
import com.microsoft.playwright.Browser;
import com.microsoft.playwright.BrowserType;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.Playwright;public class LaunchChrome {public static void main(String[] args) {try (Playwright playwright = Playwright.create()) {//使用chromium瀏覽器,# 瀏覽器配置,設置以GUI模式啟動Chrome瀏覽器(要查看瀏覽器UI,在啟動瀏覽器時傳遞?headless=false?標志。您還可以使用?slowMo?來減慢執行速度。Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setHeadless(false).setSlowMo(50));//創建pagePage page = browser.newPage();//瀏覽器打開百度page.navigate("https://www.baidu.com/");//打印titleSystem.out.println(page.title());//關閉pagepage.close();}}}

通過上邊在代碼中增加的注釋,想必就比較好理解了,這樣就知道我們在第一篇文章運行代碼時,為何沒有看到執行后打開瀏覽器UI了吧!

7.梳理

經常碰到頭疼的問題就是:出現瀏覽器版本和驅動版本匹配的問題,新手一定要注意這個問題。但是playwright無論是Java還是python語言,無論是新手還是老鳥就都不需要擔心這些問題了,就是簡單換個方法就可以啟動不同的瀏覽器了。

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

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

相關文章

使用OpenWebUI與DeepSeek交互

Open WebUI 是針對 LLM 用戶友好的 WebUI,支持的 LLM 運行程序包括阿里百煉、 Ollama、OpenAI 兼容的 API。這里主要講在Docker環境下安裝與本地Ollame和百煉API Key配置 一、安裝Docker 1. CentOS # 設置為阿里云的源 sudo yum install -y yum-utils sudo yum-config-mana…

Github 2025-06-25 C開源項目日報 Top9

根據Github Trendings的統計,今日(2025-06-25統計)共有9個項目上榜。根據開發語言中項目的數量,匯總情況如下: 開發語言項目數量C項目9C++項目1raylib: 用于視頻游戲編程的簡單易用圖形庫 創建周期:3821 天開發語言:C協議類型:zlib LicenseStar數量:18556 個Fork數量:1…

【數據標注師】2D標注

目錄 一、 **2D標注知識體系框架**二、 **五階能力培養體系**? **階段1:基礎規則內化(1-2周)**? **階段2:復雜場景處理技能**? **階段3:專業工具 mastery**? **階段4:領域深度專精? **階段5&#xff1…

深入淺出Node.js后端開發

讓我們來理解Node.js的核心——事件循環和異步編程模型。在Node.js中,所有的I/O操作都是非阻塞的,這意味著當一個請求開始等待I/O操作完成時(如讀取文件或數據庫操作),Node.js不會阻塞后續操作,而是繼續執行…

C++11的內容

1.支持花括號初始化 void test1() {vector<string> v1 { "asd","asd","add" };vector<string> v2{ "asd","asd","add" };map<string, int> m1{ {"asd",1},{"asd",2},{&q…

AI代碼助手實踐指南

概述與發展趨勢 核心理念 發展方向&#xff1a;從代碼補全 → 代碼生成 → 整個工程服務價值轉換&#xff1a;從單純寫代碼 → 需求驅動的代碼生成功能擴展&#xff1a;超越編寫層面&#xff0c;涵蓋測試環境搭建等 核心價值點 低價值動作識別&#xff1a;debug、代碼評審、…

.net反編譯工具

.NET 反編譯工具大揭秘 在.NET 開發的世界里&#xff0c;有時候我們需要對已編譯的.NET 程序集進行反編譯&#xff0c;將 DLL 或 EXE 文件還原為可讀的源代碼形式&#xff0c;這在學習、調試、代碼分析等方面都有著重要的作用。今天&#xff0c;就讓我們一起深入了解一些流行的…

mac docker desktop 安裝 oracle

1.登錄 oracle 官網&#xff0c;選擇鏡像 https://container-registry.oracle.com/ords/f?p113:1:6104693702564::::FSP_LANGUAGE_PREFERENCE:&cs3CAuGEkeY6APmlAELFJ0uYU5M8_O8aTEufSKZHFf12lu1sUk5fsdbCzJAni9jVaCYXf-SNM_8e3VYr1V4QMBq1A 2.登錄認證 oracle 賬號 doc…

【redis使用場景——緩存——數據過期策略 】

redis使用場景——緩存——數據過期策略 定期刪除&#xff08;Active Expiration&#xff09;1. 快速模式&#xff08;Fast Expiration Cycle&#xff09;工作流程&#xff1a;特點&#xff1a;優點&#xff1a; 2. 慢速模式&#xff08;Slow Expiration Cycle&#xff09;工作…

智能體Manus和實在Agent的區別

在當今數字化時代&#xff0c;AI 已經深度融入我們的生活和工作。曾經&#xff0c;像 ChatGPT 這樣的傳統 AI&#xff0c;雖然能在很多方面給我們提供幫助&#xff0c;比如寫郵件時它妙筆生花&#xff0c;分析數據時頭頭是道&#xff0c;可卻在最后一步掉了鏈子 —— 它不會點擊…

Prism框架實戰:WPF企業級開發全解

以下是一個完整的WPF項目示例&#xff0c;使用Prism框架實現依賴注入、導航、復合命令、模塊化和聚合事件功能。項目結構清晰&#xff0c;包含核心功能實現&#xff1a; 項目結構 PrismDemoApp/ ├── PrismDemoApp (主項目) │ ├── Views/ │ │ ├── ShellView…

單片機學習筆記---AD/DA工作原理(含運算放大器的工作原理)

目錄 AD/DA介紹 硬件電路模型 硬件電路 運算放大器 DA原理 T型電阻網絡DA轉換器 PWM型DA轉換器 AD原理 逐次逼近型AD轉換器 AD/DA性能指標 XPT2046 XPT2046時序 AD/DA介紹 AD&#xff08;Analog to Digital&#xff09;&#xff1a;模擬-數字轉換&#xff0c;將模擬…

matlab實現相控超聲波成像

相控超聲波成像仿真檢測探傷 數據接收 換能器開發 Phased Array Codes/Matlab Examples.pptx , 513230 Phased Array Codes/MATLAB M_files/delay_laws2D.m , 1027 Phased Array Codes/MATLAB M_files/delay_laws2D_int.m , 3290 Phased Array Codes/MATLAB M_files/delay_law…

Stable Diffusion入門-ControlNet 深入理解 第二課:ControlNet模型揭秘與使用技巧

大家好&#xff0c;歡迎回到Stable Diffusion入門-ControlNet 深入理解系列的第二課&#xff01; 如果你還記得第一篇文章的內容 - 我們已經了解了 ControlNet 的基礎概念&#xff1a;它通過預處理器和模型兩個強力模塊&#xff0c;賦予了AI繪畫前所未有的精準控制。 還沒看過…

大數據時代UI前端的變革:從靜態展示到動態交互

hello寶子們...我們是艾斯視覺擅長ui設計、前端開發、數字孿生、大數據、三維建模、三維動畫10年經驗!希望我的分享能幫助到您!如需幫助可以評論關注私信我們一起探討!致敬感謝感恩! 在大數據時代&#xff0c;信息以前所未有的速度和規模增長。這種數據環境的變化&#xff0c;深…

引腳個數、引腳寬度、引腳之間距離

原圖&#xff1a; 最終效果圖如下&#xff1a; 1.讀取圖片并設置參數 read_image (Image, ic_pin) dev_set_draw (margin) dev_set_line_width (2) dev_get_window (WindowHandle) get_image_size (Image, Width, Height) 2.繪制提取的ROI區域 r:58 // 旋轉矩形的中心點坐標…

內網和外網有什么區別?如何將內網ip端口地址映射到外網用?

由于局域網的使用&#xff0c;區分出了內網和外網兩種概念。以路由器為核心&#xff0c;可以將多臺電腦組建成一個局域網&#xff0c;局域網之內的網絡便是內網。內網是有距離限制的&#xff0c;只有在路由器信號范圍內的電腦才能接入局域網&#xff0c;否則需要進行內網穿透技…

Git倉庫的原理理解

國內外主流的 Git 代碼托管平臺 (持續更新) - JetsungChan - 博客園 .gitignore文件講解( 忽略規則文件 )[重點] (主要目的是為了節省空間 , 不必要的文件不要管他 , 忽略掉) 重復文件的云儲存(只會上傳一份) (所以不要怕stm32每個工程文件 , 有幾十M , 全部上傳會太大 . 實際…

011 Linux進程

&#x1f984; 個人主頁: 小米里的大麥-CSDN博客 &#x1f38f; 所屬專欄: Linux_小米里的大麥的博客-CSDN博客 &#x1f381; GitHub主頁: 小米里的大麥的 GitHub ?? 操作環境: Visual Studio 2022 文章目錄 深入理解 Linux 進程管理一、管理哲學/本質&#xff1a;先描述&am…

星型模型(Star Schema)

在數據倉庫的體系概念中&#xff0c;星型模型&#xff08;Star Schema&#xff09;和雪花模型&#xff08;Snowflake Schema&#xff09;是兩種常見的數據模型&#xff0c;用于組織和結構化數據&#xff0c;以支持高效的查詢和分析。 今天我們先介紹星型模型&#xff08;Star …