Cromedriver`driver.manage.logs.get(:browser)`在chromedriver 75.0.3770.8上失败

Dan*_*iel 8 ruby capybara selenium-chromedriver

在chromedriver 75.0.3770.8上访问driver.manage.logs.get(:browser)时-导致错误

#(NoMethodError)的未定义方法`log'

在74.0.3729.6上正常工作

来自:https : //github.com/SeleniumHQ/selenium/issues/7270

Jan*_*sch 11

在最近的selenium-webdriver(4.4.0)和最近的 Chrome(105)中,manage.logs已经消失了,但是这有效:

page.driver.browser.logs.get(:browser)
Run Code Online (Sandbox Code Playgroud)


Dan*_*iel 6

Chrome 75默认为W3C模式,该模式未指定获取日志访问权限的方式。

此问题的短期解决办法是禁止w3c通过chromeOptions

Capybara.register_driver :headless_chrome do |app|
  capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
    chromeOptions: { args: %w[headless window-size=1280,800], w3c: false },
  )

  Capybara::Selenium::Driver.new app,
                                 browser: :chrome,
                                 desired_capabilities: capabilities
end
Run Code Online (Sandbox Code Playgroud)


Tho*_*ole 6

Capybara 3.24 现在可以在与 chromedriver >= 75.0.3770.90 一起使用时解决此问题

  • @codener 是的,Ruby 2.3 的生命周期结束了 - 是时候升级了 (3认同)