Motomichi Works Blog

モトミチワークスブログです。その日学習したことについて書いている日記みたいなものです。

Railsのsystem spec (Capybara)でJavaScriptのconsole.logを出力する方法

参照したページ

gem のバージョン

gem 'selenium-webdriver', '~> 4.11.0'
 
gem 'capybara', '>= 2.15'

出力する方法

以下のように書くと出力されました。

puts page.driver.browser.logs.get(:browser)

おまけ

その1

参照した Capybara+ChromeでJavaScriptのエラーを出力 #Rails - Qiita の通りに

以下のように書くと

puts page.driver.browser.manage.logs.get(:browser)

以下のようなエラーが出ました。

NoMethodError:
       undefined method `logs' for #<Selenium::WebDriver::Manager:0x0000000109cb6ce0 @bridge=#<Selenium::WebDriver::Remote::Bridge:0x0000000109c7f740 @http=#<Capybara::Selenium::PersistentClient:0x0000000109c67460 @open_timeout=nil, @read_timeout=nil, @server_url=#<URI::HTTP http://127.0.0.1:9515/>

その2

以下のように書くと

puts page.driver.browser.manage

以下のように出力されました。

#<Selenium::WebDriver::Manager:0x0000000109df9c88>

その3

以下のように書くと

puts page.driver.browser.logs

以下のように出力されました。

#<Selenium::WebDriver::Logs:0x000000010e74fec8>