Bash

如何在 Windows chrome 的 WSL2 中設置“$CHROME_EXECUTABLE”

  • May 17, 2022

我正在嘗試通過 WSL2 使用 Windows chrome 執行檔(作為參考,Flutter 著眼於$CHROME_EXECUTABLE在 chrome 中啟動 Web 應用程序)。

在我的 bashrc 中,我有以下內容:

export CHROME_EXECUTABLE="/mnt/c/program\ files/google/chrome/application/chrome.exe"

有了這個,flutter doctor抱怨$CHROME_EXECUTABLE並不指向 chrome 執行檔。如果我$CHROME_EXECUTABLE在 bash 中執行,我會得到:

bash: /mnt/c/program\: No such file or directory

但是,如果我執行/mnt/c/program\ files/google/chrome/application/chrome.exe,它可以工作並在 Windows 內打開一個 chrome 實例。

似乎這裡有一些轉義問題,但我不確定發生了什麼,我認為\ 會轉義“程序文件”中的空間?

完全披露,我不使用 Flutter,所以我在這裡可能是錯的,但從一些快速研究來看,我認為 Flutter 不僅僅是“啟動”Chrome。它確實需要一個 Chromium 執行檔來進行通信(可能通過 webdriver)進行調試。

如果確實如此,那麼將 Windows 版本的 Chrome 與 Linux 版本的 Flutter 一起使用是行不通的。這類似於嘗試將 Windows 版本的 Chrome 與 Selenium 一起使用。這可以解釋為什麼即使您的路徑正確,Flutter 也會抱怨 Windows 二進製文件不是“Chrome 執行檔”。

在這種情況下,解決方案是在 WSL 中安裝 Linux 版本的 Chrome(或 Chromium)。要回顧這個問題的解決方案,您可以通過以下方式執行此操作:

  • 升級到 Windows 11,它支持使用 WSLg 在 Windows 上執行 Linux GUI 應用程序。
  • 根據 harrymc 的回答,在 Windows 上使用第三方 X 伺服器
  • 根據xrdp我的回答在那裡使用。這是我提供完整步驟的 Ask Ubuntu 答案的直接連結。

xrdp至少,我已經使用該方法在 WSL 上成功執行了 Selenium 。

引用自:https://unix.stackexchange.com/questions/676504