対応
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オプションについて。ディスクのメモリスペースを使うようにする。