@@ -163,12 +163,15 @@ impl SeleniumManager for EdgeManager {
163163 }
164164
165165 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 ( ) ;
167167 let mut metadata = get_metadata ( self . get_logger ( ) ) ;
168168 let driver_ttl = self . get_config ( ) . driver_ttl ;
169169
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+ ) {
172175 Some ( driver_version) => {
173176 self . log . trace ( format ! (
174177 "Driver TTL is valid. Getting {} version from metadata" ,
@@ -177,17 +180,30 @@ impl SeleniumManager for EdgeManager {
177180 Ok ( driver_version)
178181 }
179182 _ => {
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+ ) ;
191207 self . log . debug ( format ! (
192208 "Reading {} version from {}" ,
193209 & self . driver_name, driver_url
@@ -197,7 +213,7 @@ impl SeleniumManager for EdgeManager {
197213
198214 if !browser_version. is_empty ( ) {
199215 metadata. drivers . push ( create_driver_metadata (
200- browser_version,
216+ browser_version. as_str ( ) ,
201217 self . driver_name ,
202218 & driver_version,
203219 driver_ttl,
0 commit comments