File tree 3 files changed +20
-5
lines changed
3 files changed +20
-5
lines changed Original file line number Diff line number Diff line change @@ -17,7 +17,7 @@ def initialize(options = nil)
17
17
@options . url_blacklist = prepare_wildcards ( options &.dig ( :url_blacklist ) )
18
18
@options . url_whitelist = prepare_wildcards ( options &.dig ( :url_whitelist ) )
19
19
20
- @page = false
20
+ @page = nil
21
21
end
22
22
23
23
def command ( ...)
@@ -28,20 +28,20 @@ def command(...)
28
28
end
29
29
30
30
def page
31
- raise Ferrum ::NoSuchPageError if @page . nil ?
31
+ raise Ferrum ::NoSuchPageError if @page &. closed ?
32
32
33
33
@page ||= attach_page
34
34
end
35
35
36
36
def reset
37
37
super
38
38
@options . reset_window_size
39
- @page = attach_page
39
+ @page = nil
40
40
end
41
41
42
42
def quit
43
43
super
44
- @page = false
44
+ @page = nil
45
45
end
46
46
47
47
def resize ( **options )
@@ -122,7 +122,7 @@ def close_window(target_id)
122
122
target = targets [ target_id ]
123
123
raise Ferrum ::NoSuchPageError unless target
124
124
125
- @page = nil if @page . target_id == target . id
125
+ @page = ClosedPage . new if @page . target_id == target . id
126
126
target . page . close
127
127
targets . delete ( target_id ) # page.close is async, delete target asap
128
128
end
Original file line number Diff line number Diff line change 4
4
5
5
module Capybara
6
6
module Cuprite
7
+ class ClosedPage
8
+ def closed?
9
+ true
10
+ end
11
+ end
12
+
7
13
class Page < Ferrum ::Page
8
14
MODAL_WAIT = ENV . fetch ( "CUPRITE_MODAL_WAIT" , 0.05 ) . to_f
9
15
TRIGGER_CLICK_WAIT = ENV . fetch ( "CUPRITE_TRIGGER_CLICK_WAIT" , 0.1 ) . to_f
@@ -129,6 +135,10 @@ def title
129
135
active_frame . current_title
130
136
end
131
137
138
+ def closed?
139
+ false
140
+ end
141
+
132
142
private
133
143
134
144
def prepare_page
Original file line number Diff line number Diff line change @@ -87,7 +87,12 @@ module TestSessions
87
87
#has_element? should be true if the given element is on the page
88
88
REGEXP
89
89
90
+ intentional_skip = <<~REGEXP . split ( "\n " ) . map { |s | Regexp . quote ( s . strip ) } . join ( "|" )
91
+ Capybara::Session Cuprite #reset_session! closes extra windows
92
+ REGEXP
93
+
90
94
metadata [ :skip ] = true if metadata [ :full_description ] . match ( /#{ regexes } / )
95
+ metadata [ :skip ] = "Intentionally skipped" if metadata [ :full_description ] . match ( /#{ intentional_skip } / )
91
96
metadata [ :skip ] = true if metadata [ :requires ] &.include? ( :active_element )
92
97
end
93
98
You can’t perform that action at this time.
0 commit comments