Class: Grell::RawPage
- Inherits:
-
Object
- Object
- Grell::RawPage
- Includes:
- Capybara::DSL
- Defined in:
- lib/grell/rawpage.rb
Overview
This class depends heavily on Capybara but contains no logic.
Instance Method Summary collapse
- #all_anchors ⇒ Object
- #body ⇒ Object
- #has_selector?(selector) ⇒ Boolean
- #headers ⇒ Object
- #host ⇒ Object
- #navigate(url) ⇒ Object
- #status ⇒ Object
- #wait_for_all_ajax_requests(timeout, interval) ⇒ Object
Instance Method Details
#all_anchors ⇒ Object
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 |
#body ⇒ Object
19 20 21 |
# File 'lib/grell/rawpage.rb', line 19 def body page.body end |
#has_selector?(selector) ⇒ Boolean
34 35 36 |
# File 'lib/grell/rawpage.rb', line 34 def has_selector?(selector) page.has_selector?(selector) end |
#headers ⇒ Object
11 12 13 |
# File 'lib/grell/rawpage.rb', line 11 def headers page.response_headers end |
#host ⇒ Object
30 31 32 |
# File 'lib/grell/rawpage.rb', line 30 def host page.current_host end |
#navigate(url) ⇒ Object
6 7 8 9 |
# File 'lib/grell/rawpage.rb', line 6 def navigate(url) visit(url) follow_redirects! end |
#status ⇒ Object
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 |