Kuzunoha-NEのブログ

プログラミングなどの勉強をしてます

【TypeScript】Puppeteerで言語を固定できるみたい

こんばんは、葛の葉です。

今回は疲れているので省エネです。

起こったこと

PuppeteerでE2Eテストをやっててヘッドレスだとテストが通らないのに、ヘッドレスをやめるとテストが通るという現象がおきました。そしてそれはタイトルの文字が正しく表示されるかどうかをテストするものでした。

ヘッドレスとそうでないのの違いがよくわからず、しばらく詰んでおりました。

原因は

原因はPuppeteerの言語を固定していなかったからでした👀ブラウザに設定された言語によって英語と日本語とが変わる仕様にしていたので、正とする日本語のタイトル文が表示されてなくてパスしていなかったわけですね。

ヘッドレスモードをオフにすると、不思議なことに日本語で固定されてました。osに依存したりするのかな?

こうした

言語を日本語で固定しました。

import { launch } from "puppeteer";

(async () => {
    const browser = await launch({
        args: ['--lang=ja']
    });
    // 処理が続く
})();

これはPuppeteerの書き方というよりchromiumの起動オプションらしいです。それと、英語ページは実際にまだ使ってないのでテストしないようにしました。

参考

stackoverflow.com