Sha256: e64dc4a3e06a5ad319b3a6677c2412da0f66f5560dc17fc148c3fd6f2f485526

Contents?: true

Size: 1.6 KB

Versions: 2

Compression:

Stored size: 1.6 KB

Contents

module Appium::Capybara
  class Appium::Capybara::Driver < Capybara::Driver::Base
    DEFAULT_OPTIONS = {
    }

    attr_reader :app, :options

    def browser
      unless @browser
        @browser = Appium::Driver.new @options
        # This will fail if your appium didn't close its last session
        @browser.start_driver
      end
      @browser
    end

    def initialize(app, options = {})
      @app = app
      @options = DEFAULT_OPTIONS.merge(options)
    end

    def browser_initialized?
      !@browser.nil?
    end

    def reset!
      # TODO: What do we want to do here?
    end

    def wait?
      false
    end

    def find_xpath(selector)
      browser.find_elements(:xpath, selector).map { |node| Appium::Capybara::Node.new(self, node) }
    end

    def find_css(selector)
      browser.find_elements(:css, selector).map { |node| Appium::Capybara::Node.new(self, node) }
    end

    def find_custom(finder, locator)
      browser.find_elements(finder, locator).map { |node| Appium::Capybara::Node.new(self, node) }
    end

    def quit
      @browser.driver_quit if @browser
    rescue Errno::ECONNREFUSED
      # Browser must have already gone
    ensure
      @browser = nil
    end

    def dismiss_alert
      browser.alert_dismiss
    end

    def accept_alert
      browser.alert_accept
    end

    def scroll_up
      browser.driver.execute_script("mobile: scroll", direction: "up")
    end

    def scroll_down
      browser.driver.execute_script("mobile: scroll", direction: "down")
    end

    # Use :landscape or :portrait
    def rotate(opts)
      browser.driver.rotate opts
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
appium_capybara-0.0.2 lib/appium_capybara/driver/appium/driver.rb
appium_capybara-0.0.1 lib/appium_capybara/driver/appium/driver.rb