File tree Expand file tree Collapse file tree 5 files changed +14
-10
lines changed
sig/lib/selenium/webdriver Expand file tree Collapse file tree 5 files changed +14
-10
lines changed Original file line number Diff line number Diff line change @@ -70,10 +70,9 @@ def for(browser, opts = {})
7070
7171 def initialize ( bridge : nil , listener : nil , **opts )
7272 @devtools = nil
73- @bidi = nil
7473 bridge ||= create_bridge ( **opts )
75- add_extensions ( bridge . browser )
7674 @bridge = listener ? Support ::EventFiringBridge . new ( bridge , listener ) : bridge
75+ add_extensions ( @bridge . browser )
7776 end
7877
7978 def inspect
@@ -174,18 +173,14 @@ def quit
174173 ensure
175174 @service_manager &.stop
176175 @devtools &.close
177- @bidi &.close
178176 end
179177
180178 #
181179 # Close the current window, or the browser if no windows are left.
182180 #
183181
184182 def close
185- # If no top-level browsing contexts are open after calling close,
186- # it indicates that the WebDriver session is closed.
187- # If the WebDriver session is closed, the BiDi session also needs to be closed.
188- bridge . close . tap { |handles | @bidi &.close if handles &.empty? }
183+ bridge &.close
189184 end
190185
191186 #
Original file line number Diff line number Diff line change @@ -28,7 +28,7 @@ module HasBiDi
2828 #
2929
3030 def bidi
31- @bidi ||= Selenium :: WebDriver :: BiDi . new ( url : capabilities [ :web_socket_url ] )
31+ @bridge . bidi
3232 end
3333 end # HasBiDi
3434 end # DriverExtensions
Original file line number Diff line number Diff line change @@ -213,10 +213,12 @@ def quit
213213 http . close
214214 rescue *QUIT_ERRORS
215215 nil
216+ ensure
217+ @bidi &.close
216218 end
217219
218220 def close
219- execute :close_window
221+ execute ( :close_window ) . tap { | handles | @bidi &. close if handles . empty? }
220222 end
221223
222224 def refresh
@@ -602,6 +604,13 @@ def user_verified(verified, authenticator_id)
602604 execute :set_user_verified , { authenticatorId : authenticator_id } , { isUserVerified : verified }
603605 end
604606
607+ def bidi
608+ msg = 'this operation requires enabling BiDi by setting #web_socket_url to true in options class'
609+ raise ( WebDriver ::Error ::WebDriverError , msg ) unless capabilities . web_socket_url
610+
611+ @bidi ||= Selenium ::WebDriver ::BiDi . new ( url : capabilities [ :web_socket_url ] )
612+ end
613+
605614 def command_list
606615 COMMANDS
607616 end
Original file line number Diff line number Diff line change @@ -5,7 +5,6 @@ module Selenium
55
66 include TakesScreenshot
77
8- @bidi: untyped
98 @devtools: untyped
109 @navigate: untyped
1110
Original file line number Diff line number Diff line change @@ -5,6 +5,7 @@ module Selenium
55 include _CommandList
66 include _Features
77
8+ @bidi: WebDriver::BiDi
89 @http: untyped
910
1011 @file_detector: untyped
You can’t perform that action at this time.
0 commit comments