Class: Capybara::Cuprite::Browser
- Inherits:
-
Ferrum::Browser
- Object
- Ferrum::Browser
- Capybara::Cuprite::Browser
- Extended by:
- Forwardable
- Defined in:
- lib/capybara/cuprite/browser.rb
Instance Attribute Summary collapse
-
#url_blacklist ⇒ Object
Returns the value of attribute url_blacklist.
-
#url_whitelist ⇒ Object
Returns the value of attribute url_whitelist.
Instance Method Summary collapse
- #all_text(node) ⇒ Object
- #attribute(node, name) ⇒ Object
- #attributes(node) ⇒ Object
- #browser_error ⇒ Object
- #close_window(target_id) ⇒ Object
- #delete_text(node) ⇒ Object
- #disabled?(node) ⇒ Boolean
- #drag(node, other) ⇒ Object
- #drag_by(node, x, y) ⇒ Object
- #find(method, selector) ⇒ Object
- #find_within(node, method, selector) ⇒ Object
-
#initialize(options = nil) ⇒ Browser
constructor
A new instance of Browser.
- #page ⇒ Object
- #parents(node) ⇒ Object
- #path(node) ⇒ Object
- #property(node, name) ⇒ Object
- #quit ⇒ Object
- #reset ⇒ Object
- #select_file(node, value) ⇒ Object
- #source ⇒ Object
- #status_code ⇒ Object
- #switch_to_window(target_id) ⇒ Object
- #value(node) ⇒ Object
- #visible?(node) ⇒ Boolean
- #visible_text(node) ⇒ Object
- #visit(*args) ⇒ Object
- #window_handle ⇒ Object
- #window_handles ⇒ Object
- #within_window(locator = nil, &block) ⇒ Object
Constructor Details
#initialize(options = nil) ⇒ Browser
Returns a new instance of Browser.
15 16 17 18 19 20 21 22 |
# File 'lib/capybara/cuprite/browser.rb', line 15 def initialize( = nil) ||= {} self.url_blacklist = [:url_blacklist] self.url_whitelist = [:url_whitelist] super @page = false end |
Instance Attribute Details
#url_blacklist ⇒ Object
Returns the value of attribute url_blacklist.
13 14 15 |
# File 'lib/capybara/cuprite/browser.rb', line 13 def url_blacklist @url_blacklist end |
#url_whitelist ⇒ Object
Returns the value of attribute url_whitelist.
13 14 15 |
# File 'lib/capybara/cuprite/browser.rb', line 13 def url_whitelist @url_whitelist end |
Instance Method Details
#all_text(node) ⇒ Object
170 171 172 |
# File 'lib/capybara/cuprite/browser.rb', line 170 def all_text(node) node.text end |
#attribute(node, name) ⇒ Object
150 151 152 |
# File 'lib/capybara/cuprite/browser.rb', line 150 def attribute(node, name) evaluate_on(node: node, expression: %Q(_cuprite.getAttribute(this, "#{name}"))) end |
#attributes(node) ⇒ Object
145 146 147 148 |
# File 'lib/capybara/cuprite/browser.rb', line 145 def attributes(node) value = evaluate_on(node: node, expression: "_cuprite.getAttributes(this)") JSON.parse(value) end |
#browser_error ⇒ Object
113 114 115 |
# File 'lib/capybara/cuprite/browser.rb', line 113 def browser_error evaluate("_cuprite.browserError()") end |
#close_window(target_id) ⇒ Object
106 107 108 109 110 111 |
# File 'lib/capybara/cuprite/browser.rb', line 106 def close_window(target_id) target = targets[target_id] raise Ferrum::NoSuchPageError unless target @page = nil if @page == target.page target.page.close end |
#delete_text(node) ⇒ Object
141 142 143 |
# File 'lib/capybara/cuprite/browser.rb', line 141 def delete_text(node) evaluate_on(node: node, expression: "_cuprite.deleteText(this)") end |
#disabled?(node) ⇒ Boolean
162 163 164 |
# File 'lib/capybara/cuprite/browser.rb', line 162 def disabled?(node) evaluate_on(node: node, expression: "_cuprite.isDisabled(this)") end |
#drag(node, other) ⇒ Object
121 122 123 |
# File 'lib/capybara/cuprite/browser.rb', line 121 def drag(node, other) raise NotImplementedError end |
#drag_by(node, x, y) ⇒ Object
125 126 127 |
# File 'lib/capybara/cuprite/browser.rb', line 125 def drag_by(node, x, y) raise NotImplementedError end |
#find(method, selector) ⇒ Object
57 58 59 |
# File 'lib/capybara/cuprite/browser.rb', line 57 def find(method, selector) find_all(method, selector) end |
#find_within(node, method, selector) ⇒ Object
65 66 67 68 69 |
# File 'lib/capybara/cuprite/browser.rb', line 65 def find_within(node, method, selector) resolved = page.command("DOM.resolveNode", nodeId: node.node_id) object_id = resolved.dig("object", "objectId") find_all(method, selector, { "objectId" => object_id }) end |
#page ⇒ Object
24 25 26 27 |
# File 'lib/capybara/cuprite/browser.rb', line 24 def page raise Ferrum::NoSuchPageError if @page.nil? @page ||= default_context.page end |
#parents(node) ⇒ Object
133 134 135 |
# File 'lib/capybara/cuprite/browser.rb', line 133 def parents(node) evaluate_on(node: node, expression: "_cuprite.parents(this)", by_value: false) end |
#path(node) ⇒ Object
166 167 168 |
# File 'lib/capybara/cuprite/browser.rb', line 166 def path(node) evaluate_on(node: node, expression: "_cuprite.path(this)") end |
#property(node, name) ⇒ Object
61 62 63 |
# File 'lib/capybara/cuprite/browser.rb', line 61 def property(node, name) node.property(name) end |
#quit ⇒ Object
34 35 36 37 |
# File 'lib/capybara/cuprite/browser.rb', line 34 def quit super @page = false end |
#reset ⇒ Object
29 30 31 32 |
# File 'lib/capybara/cuprite/browser.rb', line 29 def reset super @page = default_context.page end |
#select_file(node, value) ⇒ Object
129 130 131 |
# File 'lib/capybara/cuprite/browser.rb', line 129 def select_file(node, value) node.select_file(value) end |
#source ⇒ Object
117 118 119 |
# File 'lib/capybara/cuprite/browser.rb', line 117 def source raise NotImplementedError end |
#status_code ⇒ Object
53 54 55 |
# File 'lib/capybara/cuprite/browser.rb', line 53 def status_code network.status end |
#switch_to_window(target_id) ⇒ Object
100 101 102 103 104 |
# File 'lib/capybara/cuprite/browser.rb', line 100 def switch_to_window(target_id) target = targets[target_id] raise Ferrum::NoSuchPageError unless target @page = target.page end |
#value(node) ⇒ Object
154 155 156 |
# File 'lib/capybara/cuprite/browser.rb', line 154 def value(node) evaluate_on(node: node, expression: "_cuprite.value(this)") end |
#visible?(node) ⇒ Boolean
158 159 160 |
# File 'lib/capybara/cuprite/browser.rb', line 158 def visible?(node) evaluate_on(node: node, expression: "_cuprite.isVisible(this)") end |
#visible_text(node) ⇒ Object
137 138 139 |
# File 'lib/capybara/cuprite/browser.rb', line 137 def visible_text(node) evaluate_on(node: node, expression: "_cuprite.visibleText(this)") end |
#visit(*args) ⇒ Object
49 50 51 |
# File 'lib/capybara/cuprite/browser.rb', line 49 def visit(*args) goto(*args) end |
#window_handle ⇒ Object
71 72 73 |
# File 'lib/capybara/cuprite/browser.rb', line 71 def window_handle page.target_id end |
#window_handles ⇒ Object
75 76 77 |
# File 'lib/capybara/cuprite/browser.rb', line 75 def window_handles targets.keys end |
#within_window(locator = nil, &block) ⇒ Object
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# File 'lib/capybara/cuprite/browser.rb', line 79 def within_window(locator = nil, &block) original = window_handle if Capybara::VERSION.to_f < 3.0 target_id = window_handles.find do |target_id| page = targets[target_id].page locator == page.frame_name end locator = target_id if target_id end if window_handles.include?(locator) switch_to_window(locator) yield else raise Ferrum::NoSuchPageError end ensure switch_to_window(original) end |