@@ -142,23 +142,32 @@ pub trait SeleniumManager {
142
142
. browsers
143
143
. push ( create_browser_metadata ( browser_name, & browser_version) ) ;
144
144
write_metadata ( & metadata) ;
145
- Some ( browser_version)
145
+ if !browser_version. is_empty ( ) {
146
+ Some ( browser_version)
147
+ } else {
148
+ None
149
+ }
146
150
}
147
151
}
148
152
}
149
153
150
- fn discover_driver_version ( & mut self ) -> String {
151
- if self . get_browser_version ( ) . is_empty ( ) || self . is_browser_version_unstable ( ) {
154
+ fn discover_driver_version ( & mut self ) -> Result < String , String > {
155
+ let browser_version = self . get_browser_version ( ) ;
156
+ if browser_version. is_empty ( ) || self . is_browser_version_unstable ( ) {
152
157
match self . discover_browser_version ( ) {
153
158
Some ( version) => {
154
159
log:: debug!( "Detected browser: {} {}" , self . get_browser_name( ) , version) ;
155
160
self . set_browser_version ( version) ;
156
161
}
157
162
None => {
158
- log:: debug!(
163
+ if self . is_browser_version_unstable ( ) {
164
+ return Err ( format ! ( "Browser version '{browser_version}' not found" ) ) ;
165
+ } else {
166
+ log:: debug!(
159
167
"The version of {} cannot be detected. Trying with latest driver version" ,
160
168
self . get_browser_name( )
161
- ) ;
169
+ ) ;
170
+ }
162
171
}
163
172
}
164
173
}
@@ -170,7 +179,7 @@ pub trait SeleniumManager {
170
179
self . get_driver_name( ) ,
171
180
driver_version
172
181
) ;
173
- driver_version
182
+ Ok ( driver_version)
174
183
}
175
184
176
185
fn is_browser_version_unstable ( & self ) -> bool {
@@ -183,7 +192,7 @@ pub trait SeleniumManager {
183
192
184
193
fn resolve_driver ( & mut self ) -> Result < PathBuf , Box < dyn Error > > {
185
194
if self . get_driver_version ( ) . is_empty ( ) {
186
- let driver_version = self . discover_driver_version ( ) ;
195
+ let driver_version = self . discover_driver_version ( ) ? ;
187
196
self . set_driver_version ( driver_version) ;
188
197
}
189
198
0 commit comments