@@ -163,12 +163,15 @@ impl SeleniumManager for EdgeManager {
163
163
}
164
164
165
165
fn request_driver_version ( & self ) -> Result < String , Box < dyn Error > > {
166
- let browser_version = self . get_browser_version ( ) ;
166
+ let mut browser_version = self . get_browser_version ( ) . to_string ( ) ;
167
167
let mut metadata = get_metadata ( self . get_logger ( ) ) ;
168
168
let driver_ttl = self . get_config ( ) . driver_ttl ;
169
169
170
- match get_driver_version_from_metadata ( & metadata. drivers , self . driver_name , browser_version)
171
- {
170
+ match get_driver_version_from_metadata (
171
+ & metadata. drivers ,
172
+ self . driver_name ,
173
+ browser_version. as_str ( ) ,
174
+ ) {
172
175
Some ( driver_version) => {
173
176
self . log . trace ( format ! (
174
177
"Driver TTL is valid. Getting {} version from metadata" ,
@@ -177,17 +180,30 @@ impl SeleniumManager for EdgeManager {
177
180
Ok ( driver_version)
178
181
}
179
182
_ => {
180
- let driver_url = if browser_version. is_empty ( ) {
181
- format ! ( "{}{}" , DRIVER_URL , LATEST_STABLE )
182
- } else {
183
- format ! (
184
- "{}{}_{}_{}" ,
185
- DRIVER_URL ,
186
- LATEST_RELEASE ,
187
- browser_version,
188
- self . get_os( ) . to_uppercase( )
189
- )
190
- } ;
183
+ if browser_version. is_empty ( ) {
184
+ let latest_stable_url = format ! ( "{}{}" , DRIVER_URL , LATEST_STABLE ) ;
185
+ self . log . debug ( format ! (
186
+ "Reading {} latest version from {}" ,
187
+ & self . driver_name, latest_stable_url
188
+ ) ) ;
189
+ let latest_driver_version = read_version_from_link (
190
+ self . get_http_client ( ) ,
191
+ latest_stable_url,
192
+ self . get_logger ( ) ,
193
+ ) ?;
194
+ browser_version = self . get_major_version ( latest_driver_version. as_str ( ) ) ?;
195
+ self . log . debug ( format ! (
196
+ "Latest {} major version is {}" ,
197
+ & self . driver_name, browser_version
198
+ ) ) ;
199
+ }
200
+ let driver_url = format ! (
201
+ "{}{}_{}_{}" ,
202
+ DRIVER_URL ,
203
+ LATEST_RELEASE ,
204
+ browser_version,
205
+ self . get_os( ) . to_uppercase( )
206
+ ) ;
191
207
self . log . debug ( format ! (
192
208
"Reading {} version from {}" ,
193
209
& self . driver_name, driver_url
@@ -197,7 +213,7 @@ impl SeleniumManager for EdgeManager {
197
213
198
214
if !browser_version. is_empty ( ) {
199
215
metadata. drivers . push ( create_driver_metadata (
200
- browser_version,
216
+ browser_version. as_str ( ) ,
201
217
self . driver_name ,
202
218
& driver_version,
203
219
driver_ttl,
0 commit comments