diff --git a/lib/ferrum/browser/options/base.rb b/lib/ferrum/browser/options/base.rb index 6ebc63ba..cad1b996 100644 --- a/lib/ferrum/browser/options/base.rb +++ b/lib/ferrum/browser/options/base.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require "singleton" +require "open3" module Ferrum class Browser @@ -12,6 +13,14 @@ def self.options instance end + # @return [String, nil] + def self.version + out, = Open3.capture2(instance.detect_path, "--version") + out.strip + rescue Errno::ENOENT + nil + end + def to_h self.class::DEFAULT_OPTIONS end diff --git a/spec/browser/options/chrome_spec.rb b/spec/browser/options/chrome_spec.rb index d02f730a..b0125516 100644 --- a/spec/browser/options/chrome_spec.rb +++ b/spec/browser/options/chrome_spec.rb @@ -25,4 +25,10 @@ expect(defaults.merge_default({}, options)).not_to include("use-angle" => "metal") end end + + describe ".version" do + it "returns an executable version" do + expect(described_class.version).to match(/(Chromium|Chrome) \d/) + end + end end