1
0
Fork 0
mirror of https://github.com/teamcapybara/capybara.git synced 2022-11-09 12:08:07 -05:00
teamcapybara--capybara/lib/capybara/driver/base.rb
Thomas Walpole 2ffbb3c6a5 Allow drivers to provide initial element visibility with found elements and receive other optional filtering options for find_xpath/css.
Implement initial visibility return for Selenium
Use text content to pre-filter XPath searches
2019-01-08 10:52:19 -08:00

170 lines
4.5 KiB
Ruby

# frozen_string_literal: true
class Capybara::Driver::Base
attr_writer :session
def current_url
raise NotImplementedError
end
def visit(path)
raise NotImplementedError
end
def refresh
raise NotImplementedError
end
def find_xpath(query, **options)
raise NotImplementedError
end
def find_css(query, **options)
raise NotImplementedError
end
def html
raise NotImplementedError
end
def go_back
raise Capybara::NotSupportedByDriverError, 'Capybara::Driver::Base#go_back'
end
def go_forward
raise Capybara::NotSupportedByDriverError, 'Capybara::Driver::Base#go_forward'
end
def execute_script(script, *args)
raise Capybara::NotSupportedByDriverError, 'Capybara::Driver::Base#execute_script'
end
def evaluate_script(script, *args)
raise Capybara::NotSupportedByDriverError, 'Capybara::Driver::Base#evaluate_script'
end
def evaluate_async_script(script, *args)
raise Capybara::NotSupportedByDriverError, 'Capybara::Driver::Base#evaluate_script_asnyc'
end
def save_screenshot(path, **options)
raise Capybara::NotSupportedByDriverError, 'Capybara::Driver::Base#save_screenshot'
end
def response_headers
raise Capybara::NotSupportedByDriverError, 'Capybara::Driver::Base#response_headers'
end
def status_code
raise Capybara::NotSupportedByDriverError, 'Capybara::Driver::Base#status_code'
end
##
#
# @param frame [Capybara::Node::Element, :parent, :top] The iframe element to switch to
#
def switch_to_frame(frame)
raise Capybara::NotSupportedByDriverError, 'Capybara::Driver::Base#switch_to_frame'
end
def frame_title
find_xpath('/html/head/title').map(&:all_text).first.to_s
end
def frame_url
evaluate_script('document.location.href')
rescue Capybara::NotSupportedByDriverError
raise Capybara::NotSupportedByDriverError, 'Capybara::Driver::Base#frame_title'
end
def current_window_handle
raise Capybara::NotSupportedByDriverError, 'Capybara::Driver::Base#current_window_handle'
end
def window_size(handle)
raise Capybara::NotSupportedByDriverError, 'Capybara::Driver::Base#window_size'
end
def resize_window_to(handle, width, height)
raise Capybara::NotSupportedByDriverError, 'Capybara::Driver::Base#resize_window_to'
end
def maximize_window(handle)
raise Capybara::NotSupportedByDriverError, 'Capybara::Driver::Base#maximize_window'
end
def fullscreen_window(handle)
raise Capybara::NotSupportedByDriverError, 'Capybara::Driver::Base#fullscreen_window'
end
def close_window(handle)
raise Capybara::NotSupportedByDriverError, 'Capybara::Driver::Base#close_window'
end
def window_handles
raise Capybara::NotSupportedByDriverError, 'Capybara::Driver::Base#window_handles'
end
def open_new_window
raise Capybara::NotSupportedByDriverError, 'Capybara::Driver::Base#open_new_window'
end
def switch_to_window(handle)
raise Capybara::NotSupportedByDriverError, 'Capybara::Driver::Base#switch_to_window'
end
def no_such_window_error
raise Capybara::NotSupportedByDriverError, 'Capybara::Driver::Base#no_such_window_error'
end
##
#
# Execute the block, and then accept the modal opened.
# @param type [:alert, :confirm, :prompt]
# @option options [Numeric] :wait How long to wait for the modal to appear after executing the block.
# @option options [String, Regexp] :text Text to verify is in the message shown in the modal
# @option options [String] :with Text to fill in in the case of a prompt
# @return [String] the message shown in the modal
# @raise [Capybara::ModalNotFound] if modal dialog hasn't been found
#
def accept_modal(type, **options, &blk)
raise Capybara::NotSupportedByDriverError, 'Capybara::Driver::Base#accept_modal'
end
##
#
# Execute the block, and then dismiss the modal opened.
# @param type [:alert, :confirm, :prompt]
# @option options [Numeric] :wait How long to wait for the modal to appear after executing the block.
# @option options [String, Regexp] :text Text to verify is in the message shown in the modal
# @return [String] the message shown in the modal
# @raise [Capybara::ModalNotFound] if modal dialog hasn't been found
#
def dismiss_modal(type, **options, &blk)
raise Capybara::NotSupportedByDriverError, 'Capybara::Driver::Base#dismiss_modal'
end
def invalid_element_errors
[]
end
def wait?
false
end
def reset!; end
def needs_server?
false
end
def session_options
session&.config || Capybara.session_options
end
private
def session
@session ||= nil
end
end