Module: CapybaraCrawler::Crawler::MoreDSL

Defined in:
lib/capybara_crawler/crawler.rb

Overview

add more DSL methods

Instance Method Summary collapse

Instance Method Details

#disable_js(&block) ⇒ Object

disable running javascript to crawl faster



86
87
88
89
90
91
# File 'lib/capybara_crawler/crawler.rb', line 86

def disable_js(&block)
  Capybara.current_driver = :mechanize_crawler
  result = yield
  Capybara.use_default_driver # switch back to default driver
  result
end

#press_key(key, on:) ⇒ Object

press a key on a field usage:

press_key :return on: 'field-id'

www.rubydoc.info/github/jnicklas/capybara/Capybara%2FNode%2FElement%3Asend_keys



75
76
77
78
# File 'lib/capybara_crawler/crawler.rb', line 75

def press_key(key, on:)
  field = find_field(on)
  field.send_keys key
end

#press_return_on(field_name_or_id) ⇒ Object

press “return” key on a field



81
82
83
# File 'lib/capybara_crawler/crawler.rb', line 81

def press_return_on(field_name_or_id)
  press_key :return, on: field_name_or_id
end

#set_custom_user_agent(user_agent) ⇒ Object

override Capybara::UserAgent::DSL#set_custom_user_agent



94
95
96
97
98
99
100
101
102
103
# File 'lib/capybara_crawler/crawler.rb', line 94

def set_custom_user_agent(user_agent)
  driver = Capybara.current_session.driver
  if driver.is_a?(Capybara::Mechanize::Driver)
    driver.configure do |agent|
      agent.user_agent = user_agent
    end
  else
    super
  end
end