Class: Capybara::Widgets::Page
Class Method Summary
collapse
Instance Method Summary
collapse
#eventually
Methods inherited from Widget
component, element, #method_missing, #narrow, required_component, required_element, #resolve, #root, root_element
included
Constructor Details
#initialize ⇒ Page
Returns a new instance of Page.
20
21
22
|
# File 'lib/capybara/widgets/core/page.rb', line 20
def initialize
super(page)
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
in the class Capybara::Widgets::Widget
Class Method Details
.iframe(name, page_class, selector) ⇒ Object
58
59
60
61
62
63
64
65
|
# File 'lib/capybara/widgets/core/page.rb', line 58
def iframe(name, page_class, selector)
define_method name do |&block|
raise "No iframe found: #{selector}" unless page.has_selector?(selector)
within_frame page.find(selector) do
block.call page_class.new
end
end
end
|
.inherited(subclass) ⇒ Object
16
17
18
|
# File 'lib/capybara/widgets/core/page.rb', line 16
def self.inherited(subclass)
PageCollection.instance.registry << subclass
end
|
Instance Method Details
#loaded? ⇒ Boolean
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/capybara/widgets/core/page.rb', line 24
def loaded?
result = opened?
if self.respond_to?(:components_loaded?)
result = result && self.components_loaded?
end
if self.respond_to?(:elements_loaded?)
result = result && self.elements_loaded?
end
result
end
|
#open! ⇒ Object
51
52
53
54
55
|
# File 'lib/capybara/widgets/core/page.rb', line 51
def open!
visit(self.path)
loaded?
self
end
|
#opened? ⇒ Boolean
35
36
37
38
39
40
41
42
43
|
# File 'lib/capybara/widgets/core/page.rb', line 35
def opened?
if self.path_matcher?
has_current_path?(self.path_matcher, only_path: true)
elsif self.url_matcher?
has_current_path?(self.url_matcher, url: true)
else
has_current_path?(%r{#{Regexp.quote(self.path)}}, only_path: true)
end
end
|
#reload! ⇒ Object
45
46
47
48
49
|
# File 'lib/capybara/widgets/core/page.rb', line 45
def reload!
visit(current_url)
loaded?
self
end
|