Playwright for Java でインストール済みのブラウザを利用する


PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD オプション

Playwright で利用するブラウザは、自動的にダウンロードされる。

ブラウザのダウンロードを抑止する場合は、PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD 環境変数を使う。

export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
$Env:PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
set PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1

Gradle で以下のように設定しても良い。

tasks.withType(JavaExec::class) {  
    environment("PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD", "1")  
}

環境変数は Java 上で設定することはできない(リフレクションを使うか、ProcessBuilder で別プロセス起動すれば可能 )が、Playwright の CreateOptions で設定できる。

var createOptions = new Playwright.CreateOptions()  
        .setEnv(Map.of("PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD","1"));  
try (Playwright playwright = Playwright.create(createOptions)) { ... }


BrowserType.LaunchOptions()

ブラウザの実行ファイルパスを setExecutablePath() で指定する。

var launchOptions = new BrowserType.LaunchOptions()  
        .setExecutablePath(Path.of("<path to browser>"))  
        .setHeadless(false);

Google Chrome の場合

  • WindowsC:\Program Files\Google\Chrome\Application\chrome.exe
  • macOS/Applications/Google Chrome.app/Contents/MacOS/Google Chrome
  • Linux/usr/bin/google-chrome または /usr/bin/chromium-browser

Firefoxの場合(playwright.firefox())

  • WindowsC:\Program Files\Mozilla Firefox\firefox.exe
  • macOS/Applications/Firefox.app/Contents/MacOS/firefox
  • Linux/usr/bin/firefox


まとめ

まとめると、以下のようにすることで、ブラウザのダウンロードを抑止し、指定パスのブラウザで Playwright を起動できる。

public static void main(String[] args) {  
  
    var createOptions = new Playwright.CreateOptions()  
            .setEnv(Map.of("PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD","1"));  
  
    var launchOptions = new BrowserType.LaunchOptions()  
            .setExecutablePath(Path.of("<path to browser>"))  
            .setHeadless(false);  
  
    try (Playwright playwright = Playwright.create(createOptions);  
         Browser browser = playwright.chromium().launch(launchOptions)) {  
        Page page = browser.newPage();  
        page.navigate("http://playwright.dev");  
        System.out.println(page.title());  
    }  
}