uninitialized constant Applitools::Utils::EyesSeleniumUtils::Appium (NameError)

396 Views Asked by At

I am getting below error while running a ruby applitool script-

Erro - `mobile_device?': uninitialized constant Applitools::Utils::EyesSeleniumUtils::Appium (NameError)

Below is my class -

require 'eyes_selenium'
require 'selenium-webdriver'
# Initialize the eyes SDK and set your private API key.
eyes = Applitools::Selenium::Eyes.new
eyes.api_key = 'YOUR_API_KEY'
# Open a Chrome Browser.
driver = Selenium::WebDriver.for :chrome
begin
  # Start the test and set the browser's viewport size to 800x600.
  eyes.test(app_name: 'Hello World!', test_name: 'My first Selenium Ruby test!',
            viewport_size: {width:800, height:600}, driver: driver) do
    # Navigate the browser to the "hello world!" web-site.
    driver.get 'https://applitools.com/helloworld'
    # Visual checkpoint #1.
    eyes.check_window 'Hello!'
    # Click the "Click me!".
    driver.find_element(:tag_name => 'button').click
    # Visual checkpoint #2.
    eyes.check_window 'Click!'
  end
ensure
  # Close the browser.
  driver.quit

  # If the test was aborted before eyes.close was called, ends the test as aborted.`
1

There are 1 best solutions below

0
On

It seems like somehow you've set a variable $driver. It is supposed to be used by Appium for its tests.

As a quick fix try to set the $driver to nil explicitly for your test (for example - at the beginning of the script), just like that:

$driver = nil

Notice that '$' sign before a variable is important, and $driver is not the same as driver

Also, it is not necessary to require 'selenium-webdriver', since it will be required automatically by eyes_selenium as a dependency