Class: Async::WebDriver::Bridge::Pool
- Inherits:
-
Object
- Object
- Async::WebDriver::Bridge::Pool
- Defined in:
- lib/async/webdriver/bridge/pool.rb
Overview
A pool of sessions, constructed from a bridge, which instantiates drivers as needed. Drivers are capable of supporting 1 ore more sessions.
“‘ ruby begin bridge = Async::WebDriver::Bridge::Pool.new(Async::WebDriver::Bridge::Chrome.new) session = bridge.session
# ...
session.close
ensure bridge&.close end “‘
Defined Under Namespace
Classes: BridgeController, CachedWrapper
Instance Method Summary collapse
-
#close ⇒ Object
Close the session pool.
-
#initialize ⇒ Pool
constructor
Initialize the session pool.
-
#reuse(session) ⇒ Object
Reset and return a session to the pool.
-
#session(&block) ⇒ Object
Open a session.
Constructor Details
#initialize ⇒ Pool
Initialize the session pool.
153 154 155 |
# File 'lib/async/webdriver/bridge/pool.rb', line 153 def initialize(...) @controller = Async::Actor.new(BridgeController.new(...)) end |
Instance Method Details
#close ⇒ Object
Close the session pool.
158 159 160 |
# File 'lib/async/webdriver/bridge/pool.rb', line 158 def close @controller.close end |
#reuse(session) ⇒ Object
Reset and return a session to the pool.
200 201 202 203 204 205 206 |
# File 'lib/async/webdriver/bridge/pool.rb', line 200 def reuse(session) session.reset! @controller.release(session.payload) return true end |
#session(&block) ⇒ Object
Open a session.
183 184 185 186 187 188 189 190 191 192 193 194 195 |
# File 'lib/async/webdriver/bridge/pool.rb', line 183 def session(&block) payload = @controller.acquire session = CachedWrapper.open(payload[:endpoint], payload["sessionId"], payload["capabilities"], pool: self, payload: payload) return session unless block_given? begin yield session ensure session&.close end end |