メモリ省力化設定を入れて「Selenium::WebDriver::Error::UnknownError: unknown error: session deleted because of page crash」が出ないようにする

2025年3月2日:selenium問題が全体的に解決するかもしれない記事

 メモリ省力化を含め、いろんな便利機能をサンプルコード付きでまとめてみた。

Seleniumを使うときの基本設定Tipsまとめ
Seleniumを使うときの基本設定Tipsまとめ seleniumを使うときに「大体どんなスクリプトにも入れる基本設定」をまとめてみた。 サンプルコードはpythonだが、他言語でもseleniumは同じなので使えるはず。ChromeDriverManagerで自動でChromeのバ...

対応

 rubyでseleniumインスタンス(Selenium::WebDriver::Chrome::Options)のメソッドを使う際に、引数に省メモリ化するための引数をつける。

    options = Selenium::WebDriver::Chrome::Options.new
  
    # メモリ省力化設定

    # コマンドラインからchromeを開く。GUIよりこっちの方が軽い。
    options.add_argument('--headless')
    # 「暫定的なフラグ」らしい。。
    options.add_argument('--disable-gpu')
    # セキュリティ対策などのchromeに搭載してある保護機能をオフにする。
    options.add_argument('--no-sandbox')
    # ディスクのメモリスペースを使う。
    options.add_argument('--disable-dev-shm-usage')
    # リモートデバッグフラグを立てる。
    options.add_argument('--remote-debugging-port=9222')

    @driver = Selenium::WebDriver.for :chrome, options: options

上記でダメならchromeのウィンドウサイズを小さくする

 ただし、これをやると、画面に描画される要素が少なくなり、seleniumの動きにも一工夫いる可能性があるので注意。

driver.set_window_size(950, 800)

参考

・全体的に参考にさせていただいた。

・disable-gpuオプションについて。将来的にはこれはいらなくなるらしい。

・no-sandboxオプションについての記事。つまりはセキュリティ機能をオフにするということらしい。

・disable-dev-shm-usageオプションについて。ディスクのメモリスペースを使うようにする。

仙人みならい

在宅通信は、住まい・家計・道具・家の運用を見直し、安心して暮らすための記録です。

現在は、夫婦2人・フルリモート・宮崎市・車なし生活を前提に、選んだ理由、かかった費用、失敗、使ってみた感想を残しています。

仙人みならいをフォローする
PC・プログラミング余白