Ruby on rails 如何获得;console.log";从Rails日志文件中的Selenium(使用Chrome)开始?

Ruby on rails 如何获得;console.log";从Rails日志文件中的Selenium(使用Chrome)开始?,ruby-on-rails,google-chrome,selenium,capybara,selenium-chromedriver,Ruby On Rails,Google Chrome,Selenium,Capybara,Selenium Chromedriver,在Rails项目中,我使用Cucumber和Capybara,以便通过Selenium在Chrome web浏览器中运行测试 我的测试运行正常,但我想在Rails应用程序的日志文件中获取console.log、console.error等 我注册了一个类似这样的:chrome水豚驱动程序(基于不同的文章和答案): 但是我在Chrome浏览器的日志文件中什么都没有 如何在Rails日志文件中从Selenium(使用Chrome)获取“console.log”?日志不会自动显示,您需要从Seleni

在Rails项目中,我使用Cucumber和Capybara,以便通过Selenium在Chrome web浏览器中运行测试

我的测试运行正常,但我想在Rails应用程序的日志文件中获取
console.log
console.error

我注册了一个类似这样的
:chrome
水豚驱动程序(基于不同的文章和答案):

但是我在Chrome浏览器的日志文件中什么都没有


如何在Rails日志文件中从Selenium(使用Chrome)获取“console.log”?

日志不会自动显示,您需要从Selenium请求它们,然后添加它们,然后将它们写入您喜欢的任何日志。要请求日志,您需要执行以下操作

page.driver.browser.manage.logs.get(:browser) # :driver, etc.

通常,您会在后续步骤中执行类似的操作,然后将其写入您想要的日志文件。

日志不会自动显示,您需要从Selenium请求它们,然后添加它们,然后将它们写入您喜欢的任何日志。要请求日志,您需要执行以下操作

page.driver.browser.manage.logs.get(:browser) # :driver, etc.

通常情况下,您会在后续步骤中执行类似操作,然后将其写入您想要的日志文件。

谢谢您的回答。我需要日志在弹出时立即写入日志文件,以便在日志文件中可以看到在特定的其他行之前或之后执行的内容。有什么办法可以做到这一点吗?@ZedTuX如果你使用cucumber,你可以在功能的每一步之后使用AfterStep块来获取新日志,并将它们写出来(这可能更接近你的要求,但并不确切)。否则就没有办法了(webdriver规范没有提供任何即时反馈JS错误/控制台日志/等的功能)谢谢Thomas的评论。这在最新版本的驱动程序中似乎不起作用(以前也起过作用)。@FilipKis这是一年多前的答案-事情变了。它停止工作是因为chromedriver 75默认为w3c模式,而w3c模式不支持这些方法。目前,您可以将驱动程序配置为不使用w3c模式,但不确定chromedriver将支持多长时间。谢谢您的回答。我需要日志在弹出时立即写入日志文件,以便在日志文件中可以看到在特定的其他行之前或之后执行的内容。有什么办法可以做到这一点吗?@ZedTuX如果你使用cucumber,你可以在功能的每一步之后使用AfterStep块来获取新日志,并将它们写出来(这可能更接近你的要求,但并不确切)。否则就没有办法了(webdriver规范没有提供任何即时反馈JS错误/控制台日志/等的功能)谢谢Thomas的评论。这在最新版本的驱动程序中似乎不起作用(以前也起过作用)。@FilipKis这是一年多前的答案-事情变了。它停止工作是因为chromedriver 75默认为w3c模式,而w3c模式不支持这些方法。目前,您可以将驱动程序配置为不使用w3c模式,但不确定chromedriver将支持多长时间。