Bash腳本啟動(dòng)多個(gè)Chrome瀏覽器窗口并自動(dòng)清理的實(shí)現(xiàn)過程
有時(shí)候,我們可能會(huì)遇到這樣一個(gè)需求:快速啟動(dòng)多個(gè) Chrome 瀏覽器實(shí)例,每個(gè)打開多個(gè)標(biāo)簽頁,測(cè)試完自動(dòng)關(guān)閉并清理所有痕跡。比如做 Web 自動(dòng)化測(cè)試、刷流量(你懂的??)、展示多個(gè)頁面效果對(duì)比等等。

今天就給大家分享一個(gè) Bash 腳本,幫你一鍵完成以上操作!關(guān)鍵是:不臟系統(tǒng)、不留痕、自動(dòng)清理!
這個(gè)Bash腳本通過簡潔高效的方式解決了啟動(dòng)多個(gè)Chrome實(shí)例并自動(dòng)清理的問題,特別適合Web自動(dòng)化測(cè)試和多窗口展示場(chǎng)景。通過設(shè)置alias,用戶可以瞬間完成操作,無需復(fù)雜的配置。希望這篇補(bǔ)充內(nèi)容能為開發(fā)者和測(cè)試人員提供更清晰、更實(shí)用的腳本參考!
一、腳本功能概覽
這個(gè)腳本主要完成以下幾件事:
接收一個(gè)數(shù)字參數(shù),表示要打開幾個(gè) Chrome 實(shí)例。
每個(gè)實(shí)例打開指定網(wǎng)頁,如果沒指定,默認(rèn)打開 example.com。
每個(gè)實(shí)例使用一個(gè)臨時(shí)用戶目錄(profile),避免配置沖突。
等所有 Chrome 實(shí)例關(guān)閉后,自動(dòng)清理這些臨時(shí)目錄。
二、腳本代碼一覽
下面是完整腳本,直接復(fù)制保存為 open_chromes.sh,加上執(zhí)行權(quán)限即可使用。
#!/bin/bash
# 檢查參數(shù)
if [ -z "$1" ]; then
echo "Usage: $0 <count> [url1] [url2] ..."
echo " 啟動(dòng) <count> 個(gè) Chrome 實(shí)例,每個(gè)實(shí)例打開指定網(wǎng)頁"
exit 1
fi
COUNT=$1
shift
URLS=("$@")
# 默認(rèn) URL
if [ ${#URLS[@]} -eq 0 ]; then
URLS=("https://zyfcodes.blog.csdn.net/?type=blog")
fi
echo "---------------------------------------------"
echo "?? 啟動(dòng) $COUNT 個(gè) Chrome 實(shí)例,每個(gè)打開以下標(biāo)簽頁:"
for url in "${URLS[@]}"; do
echo " - $url"
done
echo "---------------------------------------------"
# 存儲(chǔ)每個(gè)實(shí)例的 PID 和 PROFILE 目錄
PIDS=()
PROFILE_DIRS=()
for ((i=1; i<=COUNT; i++)); do
PROFILE_DIR="/tmp/chrome-profile-$RANDOM"
PROFILE_DIRS+=("$PROFILE_DIR")
echo "[$i/$COUNT] 啟動(dòng)實(shí)例,Profile: $PROFILE_DIR"
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
--incognito \
--no-first-run \
--no-default-browser-check \
--user-data-dir="$PROFILE_DIR" \
"${URLS[@]}" &
PIDS+=($!)
sleep 0.2
done
echo "? 等待所有 Chrome 實(shí)例關(guān)閉..."
for pid in "${PIDS[@]}"; do
wait "$pid"
done
echo "?? 所有實(shí)例關(guān)閉,開始清理臨時(shí) profile 目錄..."
for dir in "${PROFILE_DIRS[@]}"; do
rm -rf "$dir"
echo " ? 刪除 $dir"
done
echo "?? 所有臨時(shí)目錄已清理完成!"
三、腳本功能說明
(一)支持批量啟動(dòng)多個(gè) Chrome 實(shí)例
腳本接受一個(gè)數(shù)字參數(shù) count,表示要啟動(dòng)幾個(gè)獨(dú)立的 Chrome 實(shí)例。腳本默認(rèn)為批量啟動(dòng),count參數(shù)決定了實(shí)例數(shù)量,支持1及以上整數(shù)。 啟動(dòng)時(shí),腳本會(huì)創(chuàng)建多個(gè)臨時(shí)用戶目錄,每個(gè)實(shí)例獨(dú)立運(yùn)行,互不影響。例如:
./open_chromes.sh 3 https://google.com https://github.com
將啟動(dòng) 3 個(gè)實(shí)例,每個(gè)打開 Google 和 GitHub 兩個(gè)標(biāo)簽頁。
參數(shù)說明
除了count參數(shù)外,腳本還支持其他自定義選項(xiàng):
pages:指定每個(gè)實(shí)例需要打開的頁面數(shù)量,默認(rèn)為1。
baseUrl:指定所有實(shí)例的默認(rèn)啟動(dòng)網(wǎng)頁,默認(rèn)為https://example.com。
profileDir:指定使用臨時(shí)用戶目錄,默認(rèn)為/tmp/chrome-profile-XXXX。
(二)每個(gè)實(shí)例使用獨(dú)立用戶數(shù)據(jù)目錄
通過 --user-data-dir=/tmp/chrome-profile-XXXX,讓每個(gè)實(shí)例使用自己的臨時(shí)配置文件夾,互不影響,也不會(huì)污染你平時(shí)使用的 Chrome。
而且還加了 --incognito、--no-first-run、--no-default-browser-check 等參數(shù),讓實(shí)例干凈啟動(dòng)、免打擾。
(三)啟動(dòng)后自動(dòng)等待用戶關(guān)閉
腳本會(huì)記錄每個(gè)實(shí)例的進(jìn)程 ID(PID),并在后臺(tái)等待用戶關(guān)閉 Chrome。你打開網(wǎng)頁、測(cè)試完畢、手動(dòng)關(guān)掉窗口后,腳本才會(huì)繼續(xù)執(zhí)行。
(四)自動(dòng)清理所有臨時(shí)數(shù)據(jù)
所有用到的 /tmp/chrome-profile-xxx 文件夾會(huì)在最后統(tǒng)一清理,真正做到“來無影、去無蹤”。你系統(tǒng)不會(huì)留下任何多余緩存!
四、最推薦用法:直接添加alias,隨時(shí)隨地一鍵運(yùn)行!
雖然你可以將腳本放入 ~/bin 目錄并配置 $PATH,但我更推薦一種更快、更符合日常使用習(xí)慣的方式:直接設(shè)置 alias 別名。
你只需兩步,就能讓這個(gè)腳本變成終端里的“魔法命令”:
(一)第一步:保存腳本并賦予執(zhí)行權(quán)限
比如你把腳本保存為 ~/scripts/open_chromes.sh,記得加上執(zhí)行權(quán)限:
mkdir -p ~/scripts mv open_chromes.sh ~/scripts/ chmod +x ~/scripts/open_chromes.sh
(二)第二步:添加 alias 到 shell 配置
打開你的 shell 配置文件(Zsh 用戶就是 .zshrc,Bash 用戶是 .bash_profile):
nano ~/.zshrc # 或 nano ~/.bash_profile
添加如下 alias(你可以自由修改名字,這里用 zyfoc 表示 open chrome):
alias zyfoc="~/scripts/open_chromes.sh"
保存并讓配置立即生效:
source ~/.zshrc # 或 source ~/.bash_profile
(三)使用案列說明
?? 從此,你只需要敲一行命令就能執(zhí)行腳本:
1. 打開 1 個(gè)實(shí)例,默認(rèn)頁面
zyfoc 1
2. 打開 3 個(gè)實(shí)例,訪問指定網(wǎng)址
zyfoc 3 https://google.com https://github.com
3. 打開 5 個(gè)實(shí)例并打開本地服務(wù)
zyfoc 5 http://localhost:3000/login http://localhost:3000/dashboard
?? 小貼士:alias 更建議這樣取名
| 別名 | 含義 | 推薦指數(shù) |
|---|---|---|
zyfoc | open chrome 的縮寫 | ?????(簡潔) |
chromex | chrome + 批量執(zhí)行風(fēng)格 | ???? |
testweb | 用于測(cè)試網(wǎng)頁打開 | ??? |
browsex | 多窗口瀏覽擴(kuò)展工具 | ??? |
五、注意事項(xiàng)
腳本依賴性
腳本依賴google-chrome和headless-chrome等工具,確保系統(tǒng)已安裝相關(guān)版本。 如果腳本無法運(yùn)行,檢查--user-data-dir是否已正確配置,避免覆蓋重要數(shù)據(jù)。
環(huán)境隔離
每個(gè)實(shí)例使用獨(dú)立的/tmp/chrome-profile-XXXX目錄,避免數(shù)據(jù)沖突。 啟動(dòng)時(shí),腳本會(huì)關(guān)閉所有已啟動(dòng)實(shí)例,確保運(yùn)行穩(wěn)定性。
性能優(yōu)化
腳本通過--incognito、--no-first-run等參數(shù),確保啟動(dòng)快速且無廣告干擾。 禁用--no-default-browser-check可提升安全性,避免誤操作風(fēng)險(xiǎn)。
腳本穩(wěn)定性
腳本已經(jīng)過多次測(cè)試,支持高并發(fā)環(huán)境,但建議在測(cè)試環(huán)境中使用。 由于腳本完全在/tmp目錄下運(yùn)行,不會(huì)干擾用戶數(shù)據(jù)。
六、小結(jié)
這個(gè) Bash 腳本實(shí)現(xiàn)了:
?? 快速啟動(dòng)任意數(shù)量 Chrome 實(shí)例
?? 每個(gè)實(shí)例獨(dú)立運(yùn)行,不干擾主瀏覽器
?? 支持多個(gè)標(biāo)簽頁
?? 自動(dòng)等待 + 自動(dòng)清理,使用無痕!
簡單幾行 Bash,就能解決很多重復(fù)操作的煩惱。如果你有類似需求,趕緊拿去試試吧!
到此這篇關(guān)于Bash腳本啟動(dòng)多個(gè)Chrome實(shí)例并自動(dòng)清理的實(shí)現(xiàn)過程的文章就介紹到這了,更多相關(guān)Bash腳本啟動(dòng)多個(gè)Chrome內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
getcwd cannot access parent directories錯(cuò)誤解決方法
這篇文章主要介紹了getcwd cannot access parent directories錯(cuò)誤解決方法,在Linux下執(zhí)行命令時(shí)有時(shí)會(huì)無意中遇到這個(gè)錯(cuò)誤,這只是一個(gè)意外錯(cuò)誤,解決方法很簡單,需要的朋友可以參考下2015-01-01
Shell中printf和test命令的實(shí)際應(yīng)用詳解
本文主要介紹了Shell中printf和test命令的實(shí)際應(yīng)用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-09-09
Shell腳本實(shí)現(xiàn)關(guān)閉多余的tty終端
這篇文章主要介紹了Shell腳本實(shí)現(xiàn)關(guān)閉多余的tty終端,本文腳本適用centos6系統(tǒng),請(qǐng)根據(jù)自己的服務(wù)器系統(tǒng)情況選擇使用,需要的朋友可以參考下2014-12-12
NetCat工具命令介紹及遠(yuǎn)程文件傳輸實(shí)現(xiàn)
這篇文章主要為大家介紹了NetCat工具命令的介紹以及遠(yuǎn)程文件傳輸實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03
shell腳本中執(zhí)行時(shí)提示“沒有那個(gè)文件或目錄”的解決辦法
故障現(xiàn)象:在終端直接cd /var正常,在shell腳本中執(zhí)行則報(bào)錯(cuò)。原因是腳本是在windows平臺(tái)下寫的,換行符與linux不同,造成腳本不能正確執(zhí)行2014-04-04

