class Helper

!/usr/bin/env ruby

Public Instance Methods

mouse_over(element_selector) click to toggle source
# File lib/skeleton/features/support/helper.rb, line 4
def mouse_over(element_selector)
  element = Capybara.page.driver.browser.find_element(:css, element_selector)
  Capybara.page.driver.browser.mouse.move_to element
end
take_screenshot(name_file, folder = 'screenshots/test_screens') click to toggle source
# File lib/skeleton/features/support/helper.rb, line 9
def take_screenshot(name_file, folder = 'screenshots/test_screens')
  file = "#{folder}/#{name_file}.png"
  FileUtils.mkdir_p(folder) unless File.exist?(folder)
  if BROWSER.eql?('poltergeist')
    Capybara.page.save_screenshot(file)
  else
    Capybara.page.driver.browser.save_screenshot(file)
  end
end
take_screenshot_and_crop(name_file, folder = 'screenshots/croped_files', css_element_crop) click to toggle source
# File lib/skeleton/features/support/helper.rb, line 19
def take_screenshot_and_crop(name_file, folder = 'screenshots/croped_files', css_element_crop)
  file = "#{folder}/#{name_file}.png"
  FileUtils.mkdir_p(folder) unless File.exist?(folder)
  #scroll to element
  element = Capybara.page.driver.browser.find_element(:css, css_element_crop)
  element.location_once_scrolled_into_view

  # get location and size of element
  location = element.location
  size = element.size

  # take original screenshot
  take_screenshot('image_to_crop')

  # read original screenshot
  image = ChunkyPNG::Image.from_file('screenshots/test_screens/image_to_crop.png')

  # get X, Y, width and height
  left = location['x']
  top = location['y']
  right = size['width']
  bottom = size['height']

  # crop original image and save
  # crop original image
  if OS.mac?
    image.crop!(left * 2 , top * 2, right * 2, bottom * 2)
  else
    image.crop!(left , top, right, bottom)
  end
  image.save(file)
end