Class: Capybara::Driver::Akephalos
- Inherits:
-
Base
- Object
- Base
- Capybara::Driver::Akephalos
- Defined in:
- lib/akephalos/capybara.rb
Overview
Driver class exposed to Capybara. It implements Capybara's full driver API, and is the entry point for interaction between the test suites and HtmlUnit.
This class and Capybara::Driver::Akephalos::Node are written to run on both
MRI and JRuby, and is agnostic whether the Akephalos::Client instance is used
directly or over DRb.
Defined Under Namespace
Classes: Node
Instance Attribute Summary collapse
-
#app ⇒ Object
readonly
Returns the value of attribute app.
-
#rack_server ⇒ Object
readonly
Returns the value of attribute rack_server.
Class Method Summary collapse
-
.driver ⇒ Client
An instance of Akephalos::Client.
Instance Method Summary collapse
-
#body ⇒ String
The page's modified source.
-
#browser ⇒ Object
The browser.
-
#cleanup! ⇒ Object
deprecated
Deprecated.
This method is deprecated in Capybara's master branch. Use #reset! instead.
-
#cookies ⇒ Object
The session cookies.
-
#current_url ⇒ String
The page's current URL.
-
#evaluate_script(script) ⇒ Object
Execute JavaScript against the current page and return the results.
-
#execute_script(script) ⇒ nil
Execute JavaScript against the current page, discarding any return value.
-
#find(selector) ⇒ Array<Node>
Search for nodes which match the given XPath selector.
-
#initialize(app) ⇒ Akephalos
constructor
A new instance of Akephalos.
-
#page ⇒ Object
The current page.
-
#reset! ⇒ Object
Clear all cookie session data.
-
#response_headers ⇒ Hash{String => String}
The page's response headers.
-
#source ⇒ String
The page's original source.
-
#status_code ⇒ Integer
The response's status code.
-
#user_agent ⇒ String
The current user agent string.
-
#user_agent=(user_agent) ⇒ Object
Set the User-Agent header for this session.
-
#visit(path) ⇒ Object
Visit the given path in the browser.
-
#wait ⇒ false
Disable waiting in Capybara, since waiting is handled directly by Akephalos.
-
#within_frame(frame_id, &block) ⇒ Object
Execute the given block within the context of a specified frame.
Constructor Details
#initialize(app) ⇒ Akephalos
Returns a new instance of Akephalos.
158 159 160 161 162 |
# File 'lib/akephalos/capybara.rb', line 158 def initialize(app) @app = app @rack_server = Capybara::Server.new(@app) @rack_server.boot if Capybara.run_server end |
Instance Attribute Details
#app ⇒ Object (readonly)
Returns the value of attribute app.
151 152 153 |
# File 'lib/akephalos/capybara.rb', line 151 def app @app end |
#rack_server ⇒ Object (readonly)
Returns the value of attribute rack_server.
151 152 153 |
# File 'lib/akephalos/capybara.rb', line 151 def rack_server @rack_server end |
Class Method Details
Instance Method Details
#body ⇒ String
Returns the page's modified source.
177 178 179 |
# File 'lib/akephalos/capybara.rb', line 177 def body page.modified_source end |
#browser ⇒ Object
Returns the browser.
250 251 252 |
# File 'lib/akephalos/capybara.rb', line 250 def browser self.class.driver end |
#cleanup! ⇒ Object
This method is deprecated in Capybara's master branch. Use #reset! instead.
Clear all cookie session data.
204 205 206 |
# File 'lib/akephalos/capybara.rb', line 204 def cleanup! reset! end |
#cookies ⇒ Object
Returns the session cookies.
255 256 257 |
# File 'lib/akephalos/capybara.rb', line 255 def browser. end |
#current_url ⇒ String
Returns the page's current URL.
214 215 216 |
# File 'lib/akephalos/capybara.rb', line 214 def current_url page.current_url end |
#evaluate_script(script) ⇒ Object
Execute JavaScript against the current page and return the results.
240 241 242 |
# File 'lib/akephalos/capybara.rb', line 240 def evaluate_script(script) page.evaluate_script script end |
#execute_script(script) ⇒ nil
Execute JavaScript against the current page, discarding any return value.
232 233 234 |
# File 'lib/akephalos/capybara.rb', line 232 def execute_script(script) page.execute_script script end |
#find(selector) ⇒ Array<Node>
Search for nodes which match the given XPath selector.
222 223 224 225 226 |
# File 'lib/akephalos/capybara.rb', line 222 def find(selector) nodes = [] page.find(selector).each { |node| nodes << Node.new(self, node) } nodes end |
#page ⇒ Object
Returns the current page.
245 246 247 |
# File 'lib/akephalos/capybara.rb', line 245 def page browser.page end |
#reset! ⇒ Object
Clear all cookie session data.
209 210 211 |
# File 'lib/akephalos/capybara.rb', line 209 def reset! .clear end |
#response_headers ⇒ Hash{String => String}
Returns the page's response headers.
182 183 184 |
# File 'lib/akephalos/capybara.rb', line 182 def response_headers page.response_headers end |
#source ⇒ String
Returns the page's original source.
172 173 174 |
# File 'lib/akephalos/capybara.rb', line 172 def source page.source end |
#status_code ⇒ Integer
Returns the response's status code.
187 188 189 |
# File 'lib/akephalos/capybara.rb', line 187 def status_code page.status_code end |
#user_agent ⇒ String
Returns the current user agent string.
260 261 262 |
# File 'lib/akephalos/capybara.rb', line 260 def user_agent browser.user_agent end |
#user_agent=(user_agent) ⇒ Object
Set the User-Agent header for this session. If :default is given, the User-Agent header will be reset to the default browser's user agent.
269 270 271 |
# File 'lib/akephalos/capybara.rb', line 269 def user_agent=(user_agent) browser.user_agent = user_agent end |
#visit(path) ⇒ Object
Visit the given path in the browser.
167 168 169 |
# File 'lib/akephalos/capybara.rb', line 167 def visit(path) browser.visit(url(path)) end |
#wait ⇒ false
Disable waiting in Capybara, since waiting is handled directly by Akephalos.
277 278 279 |
# File 'lib/akephalos/capybara.rb', line 277 def wait false end |
#within_frame(frame_id, &block) ⇒ Object
Execute the given block within the context of a specified frame.
195 196 197 198 199 |
# File 'lib/akephalos/capybara.rb', line 195 def within_frame(frame_id, &block) unless page.within_frame(frame_id, &block) raise Capybara::ElementNotFound, "Unable to find frame with id '#{frame_id}'" end end |