【Node.js】Puppeteerのpage.type()で日本語入力が反転してしまう場合の対処法

※当サイトはアフィリエイト広告を利用しています

※このページは2019/7/14に作成されました。

こんにちは、ケネです。

この記事ではNode.jsのライブラリPuppeteerを使って文字入力する場合の注意事項について解説します。

外部サーバにPuppeteerを設定してブラウザの自動操作をさせる際にサーバの設定によっては日本語入力が反転してしまう場合があります。
(「こんにちは」と入力したいのに「はちにんこ」となってしまう)

同じ事象で困っている人はぜひ参考にしてください。

  • page.type()で日本語入力が反転してしまう際の対処法
  • まとめ
  • page.type()で日本語入力が反転してしまう原因

    以下の原因が当てはまる人はこの記事で解決できます。

    日本語入力のみで発生

    日本語については「こんにちは」が「はちにんこ」に反転してしまいましたが、英語については反転しませんでした。
    (「Hello」は「Hello」のまま)

    この切り分けができたことで日本語入力(言語設定)に問題があると推測できます。

    外部サーバで発生

    私の場合は外部サーバ(CentOS7)で発生していましたが、MacBookで動かしたところ問題は発生しませんでした。

    そのため、Puppeteerの設定ではなく、外部サーバ(CentOS7)の設定が問題と推測できます。

    inputタグで発生

    条件はpage.type()でinputタグに日本語文字入力をした場合です。

    inputタグの例
    <input type="text" name="username" placeholder="username">

    textareaタグ<textarea>では発生しませんでした。

    page.type()で日本語入力が反転してしまう際の対処法

    CentOS7の言語設定を日本語対応にする

    CentOS7の言語設定を確認します。
    localeがLinuxデフォルトのCとなっているとPuppeteerの日本語入力が反転します。

    「ja_JP.utf8」などの日本語対応の言語設定に変更します。

    CentOS7の言語設定を確認する

    localectl statusコマンドか、/etc/locale.confを参照して確認します。

    $ localectl status
    System Locale: LANG=C
    VC Keymap: jp106
    X11 Layout: jp
    $ cat /etc/locale.conf
    LANG=C

    この場合、Cとなっているため変更が必要です。

    CentOS7の言語設定を変更する

    localectl set-localeコマンドで「ja_JP.utf8」に変更します。
    変更は永続的に反映されます。

    $ sudo localectl set-locale LANG=ja_JP.utf8
    $ localectl status
    System Locale: LANG=ja_JP.utf8
    VC Keymap: jp106
    X11 Layout: jp
    $ cat /etc/locale.conf
    LANG=ja_JP.utf8

    「ja_JP.utf8」に更新されたことが確認できました。

    言語変更できないときの暫定対処

    権限などの問題でサーバの言語設定が変更できない場合、暫定的に文字列を反転させる方法があります。

    (文字列).split(“”).reverse().join(“”)で対応できます。

    let inputValue = "はちにんこ"
    let inputValueReversed =  inputValue.split("").reverse().join("");
    // こんにちは

    まとめ

    Puppeteerでinputタグの文字列が反転する場合、サーバの日本語設定を変更することで対応できます。

    Puppeteerを学習できる数少ない書籍です。

    Puppeteer入門 スクレイピング+Web操作自動処理プログラミング

    Puppeteer入門 スクレイピング+Web操作自動処理プログラミング

    • 作者: ヴェネチア冒険團,美崎薫,小原亮一,酒井一成
    • 出版社/メーカー: 秀和システム
    • 発売日: 2018/09/19
    • メディア: 単行本
    • この商品を含むブログを見る

    自作アプリケーション初心者にはさくらVPSが手軽でおすすめです。


    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    CAPTCHA


    ABOUT US

    ケネ
    はじめまして、ケネです。

    Node.jsの技術情報を書いています。

    一人でも多くの方と「自分でもできた」感覚を共有したいので、なるべくわかりやすく、実体験ベースでのブログを心がけています。
    技術で自分の世界を広げましょう。

    不明点や質問があればお気軽にコメントください。