【问题标题】:Ruby: Chrome browser is not launchingRuby:Chrome 浏览器未启动
【发布时间】:2020-04-11 21:51:12
【问题描述】:

最近我安装了gem 'webdrivers', '~> 4.0' 并尝试启动 chrome 浏览器。但它不起作用。

代码

@app = Driver.new(Capybara::Session.new(:selenium_chrome))
Webdrivers::Chromedriver.current_version

错误日志

An error occurred while loading ./spec/login_spec.rb.
Failure/Error: require_relative '../pages/nav_bar.rb'

SyntaxError:
  /Users/madhan_kumaravel/.rvm/gems/ruby-2.2.8/gems/webdrivers-4.1.2/lib/webdrivers/chrome_finder.rb:83: syntax error, unexpected '.'
  ....VersionInfo.ProductVersion")&.strip
  ...                               ^
  /Users/madhan_kumaravel/.rvm/gems/ruby-2.2.8/gems/webdrivers-4.1.2/lib/webdrivers/chrome_finder.rb:87: syntax error, unexpected '.'
          System.call(location, '--product-version')&.strip
                                                      ^
  /Users/madhan_kumaravel/.rvm/gems/ruby-2.2.8/gems/webdrivers-4.1.2/lib/webdrivers/chrome_finder.rb:91: syntax error, unexpected '.'
          System.call(location, '--version')&.strip

【问题讨论】:

  • 似乎 gem 使用的是 Ruby 2.3 语法(&. - 安全导航运算符),但您尝试在 2.2 上运行它。

标签: ruby selenium automation capybara webdrivers-gem


【解决方案1】:

正如 cmets 中提到的Marek,gem 使用的是 safe navigation operator,它仅在 Ruby 2.3 及更高版本中可用。升级到 Ruby 2.3 或将 webdrivers 降级到 3.9.4,例如gem 'webdrivers', '~> 4.0'

我查看了code for 3.9.4,他们似乎没有使用安全导航运算符,所以值得一试。

【讨论】:

    猜你喜欢
    • 2011-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-24
    • 1970-01-01
    • 2011-02-08
    • 1970-01-01
    相关资源
    最近更新 更多