Class: Grell::RawPage

Inherits:
Object
  • Object
show all
Includes:
Capybara::DSL
Defined in:
lib/grell/rawpage.rb

Overview

This class depends heavily on Capybara but contains no logic.

Instance Method Summary collapse

Instance Method Details

#all_anchorsObject



23
24
25
26
27
28
# File 'lib/grell/rawpage.rb', line 23

def all_anchors
  # Some elements may not be "a" elements but still provide a link. This usually is done for Javascript
  # to convert other elements which are not links to be able to be clicked naturally.
  # Only return links which are visible.
  all('[href]', visible: true).to_a + all('[data-href]', visible: true).to_a
end

#bodyObject



19
20
21
# File 'lib/grell/rawpage.rb', line 19

def body
  page.body
end

#has_selector?(selector) ⇒ Boolean

Returns:

  • (Boolean)


34
35
36
# File 'lib/grell/rawpage.rb', line 34

def has_selector?(selector)
  page.has_selector?(selector)
end

#headersObject



11
12
13
# File 'lib/grell/rawpage.rb', line 11

def headers
  page.response_headers
end

#hostObject



30
31
32
# File 'lib/grell/rawpage.rb', line 30

def host
  page.current_host
end


6
7
8
9
# File 'lib/grell/rawpage.rb', line 6

def navigate(url)
  visit(url)
  follow_redirects!
end

#statusObject



15
16
17
# File 'lib/grell/rawpage.rb', line 15

def status
  page.status_code
end

#wait_for_all_ajax_requests(timeout, interval) ⇒ Object



38
39
40
41
42
43
44
45
46
47
# File 'lib/grell/rawpage.rb', line 38

def wait_for_all_ajax_requests(timeout, interval)
  Timeout::timeout(timeout) do
    (timeout / interval).ceil.times do
      jquery_active = page.evaluate_script("typeof jQuery !== 'undefined' && jQuery.active;")
      break if (!jquery_active || jquery_active.zero?)
      sleep(interval)
    end
  end
  true
end