Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in Selenium by (7k points)
edited by

The tests work, but at the start of the run it is displaying the warning

WARN Selenium [DEPRECATION] :driver_path is deprecated. Use :service with an instance of Selenium::WebDriver::Service instead

The code that successfully creates Selenium driver with warning

The code which successfully creates Selenium driver with warning

require "selenium-webdriver"

require "test/unit"

require "byebug"

...

class GoogleTest < Test::Unit::TestCase

  def setup

    case $browser_arg

    when 'chrome'

        browser = :chrome

        driver_path = '/selenium_browser_drivers/chromedriver'

    when 'firefox'

        browser = :firefox

        driver_path = '/selenium_browser_drivers/geckodriver'

    else

          raise ArgumentError.new("Unexpected browser argument '#{$browser_arg}'") 

          exit      

    end

      @se = Selenium::WebDriver.for browser, :driver_path => driver_path

  end

Gemfile

source 'https://rubygems.org'

gem 'selenium-webdriver', '~> 3.142.0'

gem 'test-unit', '~> 3.3.0'

gem 'byebug', '~> 9.1.0'

Gemfile.lock

GEM

  remote: https://rubygems.org/

  specs:

    byebug (9.1.0)

    childprocess (3.0.0)

    power_assert (1.1.5)

    rubyzip (2.0.0)

    selenium-webdriver (3.142.6)

      childprocess (>= 0.5, < 4.0)

      rubyzip (>= 1.2.2)

    test-unit (3.3.4)

      power_assert

PLATFORMS

  ruby

DEPENDENCIES

  byebug (~> 9.1.0)

  selenium-webdriver (~> 3.142.0)

  test-unit (~> 3.3.0)

BUNDLED WITH

   2.0.2

Output from the command gem list

backports (3.15.0)

bigdecimal (default: 1.3.4)

builder (3.2.3)

bundler (2.0.2, 1.16.1, default: 1.16.0)

byebug (9.1.0)

childprocess (3.0.0, 0.8.0)

cmath (default: 1.0.0)

csv (default: 1.0.0)

cucumber (3.1.2)

cucumber-core (3.2.1)

cucumber-expressions (6.0.1)

cucumber-tag_expressions (1.1.1)

cucumber-wire (0.0.1)

date (default: 1.0.0)

dbm (default: 1.0.0)

did_you_mean (1.2.0)

diff-lcs (1.3)

etc (default: 1.0.0)

fcntl (default: 1.0.0)

ffi (1.9.18)

fiddle (default: 1.0.0)

fileutils (default: 1.0.2)

gherkin (5.1.0)

io-console (default: 0.4.6)

ipaddr (default: 1.2.0)

json (default: 2.1.0)

minitest (5.10.3)

multi_json (1.13.1)

multi_test (0.1.2)

net-telnet (0.1.1)

openssl (default: 2.1.0)

power_assert (1.1.5, 1.1.1)

psych (default: 3.0.2)

rake (12.3.0)

rdoc (default: 6.0.1)

rspec (3.9.0, 3.7.0, 3.6.0)

rspec-core (3.9.0, 3.7.1, 3.6.0)

rspec-expectations (3.9.0, 3.7.0, 3.6.0)

rspec-mocks (3.9.0, 3.7.0, 3.6.0)

rspec-support (3.9.0, 3.7.1, 3.7.0, 3.6.0)

rubyzip (2.0.0, 1.2.1)

scanf (default: 1.0.0)

sdbm (default: 1.0.0)

selenium-webdriver (3.142.6, 3.8.0)

stringio (default: 0.0.1)

strscan (default: 1.0.0)

test-unit (3.3.4, 3.2.7)

webrick (default: 1.4.2)

xmlrpc (0.3.0)

zlib (default: 1.0.0)

1 Answer

0 votes
by (31.9k points)

By explicitly assigning the driver_path variable even before you instantiate the driver variable you can avoid this error.

Example:

require 'selenium-webdriver'

Selenium::WebDriver::Chrome::Service.driver_path = "C:/Ruby26/chromedriver.exe"

driver = Selenium::WebDriver.for :chrome

driver.manage.timeouts.implicit_wait = 10

driver.navigate.to("https://www.google.com/")

driver.find_element(name: 'q').send_keys 'intellipaat'

This code will not give warning as I assign that value

Selenium::WebDriver::Chrome::Service.driver_path = "C:/Ruby26/chromedriver.exe"

before I create drive.

Want to learn Selenium, checkout our Selenium training.

Browse Categories

...