编程语言
首页 > 编程语言> > javascript – 使用capybara捕获浏览器控制台日志

javascript – 使用capybara捕获浏览器控制台日志

作者:互联网

我需要使用Ruby&获取浏览器的控制台日志(类别:信息).水豚.直到现在我已经尝试过使用driver.manage.logs.get(:browser)或(:client),但是使用它,结果不是我想要的.它给出了selenium和浏览器之间的交互结果,我可以看到我的javascript语句被发送执行,但结果输出无法捕获.

需要帮忙!!!

解决方法:

使用selenium时是否可以使用日志取决于您使用Selenium的浏览器.如果你使用的是Firefox,那你就不幸了,因为它不支持日志检索API,但是因为你使用Chrome就可以访问它们.您遇到的问题是,默认情况下,仅捕获WARN或ERROR级别日志.您可以通过loggingPrefs功能在驱动程序注册中更改此设置

Capybara.register_driver :logging_selenium_chrome do |app|
  caps = Selenium::WebDriver::Remote::Capabilities.chrome(loggingPrefs:{browser: 'ALL'})
  browser_options = ::Selenium::WebDriver::Chrome::Options.new()
  # browser_options.args << '--some_option' # add whatever browser args and other options you need (--headless, etc)
  Capybara::Selenium::Driver.new(app, browser: :chrome, options: browser_options, desired_capabilities: caps)
end

然后指定使用:logging_selenium_chrome作为您的驱动程序

 Capybara.javascript_driver = :logging_selenium_chrome # or however else you're specifying which driver to use

这应该允许您在测试中获取日志

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

标签:javascript,ruby,selenium,capybara,console-log
来源: https://codeday.me/bug/20190716/1474292.html