Module: CapybaraSelect2::Helpers

Defined in:
lib/capybara_select2/helpers.rb

Class Method Summary collapse

Class Method Details

.select2_clear(options) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
# File 'lib/capybara_select2/helpers.rb', line 53

def select2_clear(options)
  options = options.dup
  options[:from] ||= options[:label]
  Utils.validate_options!(options)

  container = Utils.find_select2_container(options, page)
  version = Utils.detect_select2_version(container)
  remove_option_selector = Selectors.remove_option_selector(version)

  container.all(remove_option_selector).map(&:click)
end

.select2_close(options = {}) ⇒ Object



21
22
23
# File 'lib/capybara_select2/helpers.rb', line 21

def select2_close(options = {})
  page.find(:css, 'body').click
end

.select2_open(options) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/capybara_select2/helpers.rb', line 8

def select2_open(options)
  options = options.dup
  options[:from] ||= options[:label]
  Utils.validate_options!(options)

  _page = options[:page] || page
  container = options[:container] || Utils.find_select2_container(options, _page)
  version = options[:version] || Utils.detect_select2_version(container)
  opener_selector = Selectors.opener_selector(version)

  container.find(:css, opener_selector).click
end

.select2_search(text, options) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/capybara_select2/helpers.rb', line 25

def select2_search(text, options)
  options = options.dup
  options[:from] ||= options[:label]
  Utils.validate_options!(options)

  _page = options[:page] || page
  container = options[:container] || Utils.find_select2_container(options, _page)
  version = options[:version] || Utils.detect_select2_version(container)
  search_input_selector = Selectors.search_input_selector(version)

  _page.find(:xpath, '//body').find(:css, search_input_selector).set text
end

.select2_select(value, options) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/capybara_select2/helpers.rb', line 38

def select2_select(value, options)
  Utils.validate_options!(options)

  _page = options[:page] || page
  container = options[:container] || Utils.find_select2_container(options, _page)
  version = options[:version] || Utils.detect_select2_version(container)
  option_selector = Selectors.option_selector(version)

  find_options = { text: value }
  find_options[:match] = options[:match] if options[:match]
  find_options[:exact_text] = options[:exact_text] if options[:exact_text]

  _page.find(:xpath, '//body').find(:css, option_selector, find_options).click
end