@@ -281,7 +281,9 @@ pub trait SeleniumManager {
281281 browser_version
282282 }
283283
284- fn discover_driver_version ( & mut self ) -> Result < String , Box < dyn Error > > {
284+ fn discover_or_download_browser_and_driver_version (
285+ & mut self ,
286+ ) -> Result < String , Box < dyn Error > > {
285287 let mut download_browser = self . is_force_browser_download ( ) ;
286288 let major_browser_version = self . get_major_browser_version ( ) ;
287289
@@ -526,22 +528,23 @@ pub trait SeleniumManager {
526528 }
527529 }
528530
529- // Discover proper driver version
530- if self . get_driver_version ( ) . is_empty ( ) {
531- match self . discover_driver_version ( ) {
532- Ok ( driver_version) => {
531+ // Discover browser version (or download it, if not available and possible).
532+ // With the found browser version, discover the proper driver version using online endpoints
533+ match self . discover_or_download_browser_and_driver_version ( ) {
534+ Ok ( driver_version) => {
535+ if self . get_driver_version ( ) . is_empty ( ) {
533536 self . set_driver_version ( driver_version) ;
534537 }
535- Err ( err ) => {
536- if driver_in_path_version . is_some ( ) {
537- self . get_logger ( ) . warn ( format ! (
538- "Exception managing {}: {}" ,
539- self . get_browser_name ( ) ,
540- err
541- ) ) ;
542- } else {
543- return Err ( err ) ;
544- }
538+ }
539+ Err ( err ) => {
540+ if driver_in_path_version . is_some ( ) && driver_in_path . is_some ( ) {
541+ self . get_logger ( ) . warn ( format ! (
542+ "Exception managing {}: {}" ,
543+ self . get_browser_name ( ) ,
544+ err
545+ ) ) ;
546+ } else {
547+ return Err ( err ) ;
545548 }
546549 }
547550 }
@@ -550,12 +553,9 @@ pub trait SeleniumManager {
550553 if let ( Some ( version) , Some ( path) ) = ( & driver_in_path_version, & driver_in_path) {
551554 // If proper driver version is not the same as the driver in path, display warning
552555 let major_version = self . get_major_version ( version) ?;
553- let driver_condition = if self . is_firefox ( ) {
554- !version. eq ( self . get_driver_version ( ) )
555- } else {
556- !major_version. eq ( & self . get_major_browser_version ( ) )
557- } ;
558- if !self . get_driver_version ( ) . is_empty ( ) && driver_condition {
556+ if ( self . is_firefox ( ) && !version. eq ( self . get_driver_version ( ) ) )
557+ || !major_version. eq ( & self . get_major_browser_version ( ) )
558+ {
559559 self . get_logger ( ) . warn ( format ! (
560560 "The {} version ({}) detected in PATH at {} might not be compatible with \
561561 the detected {} version ({}); currently, {} {} is recommended for {} {}.*, \
0 commit comments