Sha256: d038216cb5ec9718bae15c8d7860fd26a982cbf91bd877cea940886ccb2a51fa

Contents?: true

Size: 1.12 KB

Versions: 1

Compression:

Stored size: 1.12 KB

Contents

require 'selenium-webdriver'

class GogoDriver
  attr_accessor :driver

  def initialize
    @driver = Selenium::WebDriver.for(:chrome)
  end

  def go(url)
    @driver.navigate.to(url)
  end

  def reload
    @driver.navigate.refresh
  end

  def find(selector)
    @driver.find_element(css: selector)
  end

  def finds(selector)
    @driver.find_elements(css: selector)
  end

  def has?(selector)
    !!find(selector)
  rescue Selenium::WebDriver::Error::NoSuchElementError
    false
  end

  def has_text?(text)
    !!@driver.find_element({xpath: "//*[text()[contains(.,\"#{text}\")]]"})
  rescue Selenium::WebDriver::Error::NoSuchElementError
    false
  end

  def click(selector)
    has?(selector) ? find(selector).click : false
  end

  def submit
    $focus.submit if $focus
  end

  def method_missing(method, *args, &block)
    @driver.respond_to?(method) ? @driver.send(method, *args, &block) : super
  end
end

class Selenium::WebDriver::Element
  def fill(text)
    $focus = self
    send_key(text)
  end

  def find(selector)
    find_element(css: selector)
  end

  def finds(selector)
    find_elements(css: selector)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gogo_driver-0.1.1 lib/gogo_driver.rb