@@ -386,7 +386,16 @@ pub trait SeleniumManager {
386386 // Check browser in PATH
387387 let browser_in_path = self . find_browser_in_path ( ) ;
388388 if let Some ( path) = & browser_in_path {
389- self . set_browser_path ( path_to_string ( path) ) ;
389+ if self . is_skip_browser_in_path ( ) {
390+ self . get_logger ( ) . debug ( format ! (
391+ "Skipping {} in path: {}" ,
392+ self . get_browser_name( ) ,
393+ path. display( )
394+ ) ) ;
395+ return None ;
396+ } else {
397+ self . set_browser_path ( path_to_string ( path) ) ;
398+ }
390399 }
391400 browser_in_path
392401 }
@@ -756,32 +765,41 @@ pub trait SeleniumManager {
756765
757766 // Use driver in PATH when the user has not specified any browser version
758767 if use_driver_in_path {
759- let version = driver_in_path_version. unwrap ( ) ;
760768 let path = driver_in_path. unwrap ( ) ;
761- let major_version = self . get_major_version ( & version) ?;
762769
763- // Display warning if the discovered driver version is not the same as the driver in PATH
764- if !self . get_driver_version ( ) . is_empty ( )
765- && ( self . is_firefox ( ) && !version. eq ( self . get_driver_version ( ) ) )
766- || ( !self . is_firefox ( ) && !major_version. eq ( & self . get_major_browser_version ( ) ) )
767- {
768- self . get_logger ( ) . warn ( format ! (
769- "The {} version ({}) detected in PATH at {} might not be compatible with \
770- the detected {} version ({}); currently, {} {} is recommended for {} {}.*, \
771- so it is advised to delete the driver in PATH and retry",
772- self . get_driver_name( ) ,
773- & version,
774- path,
775- self . get_browser_name( ) ,
776- self . get_browser_version( ) ,
770+ if self . is_skip_driver_in_path ( ) {
771+ self . get_logger ( ) . debug ( format ! (
772+ "Skipping {} in path: {}" ,
777773 self . get_driver_name( ) ,
778- self . get_driver_version( ) ,
779- self . get_browser_name( ) ,
780- self . get_major_browser_version( )
774+ path
781775 ) ) ;
776+ } else {
777+ let version = driver_in_path_version. unwrap ( ) ;
778+ let major_version = self . get_major_version ( & version) ?;
779+
780+ // Display warning if the discovered driver version is not the same as the driver in PATH
781+ if !self . get_driver_version ( ) . is_empty ( )
782+ && ( self . is_firefox ( ) && !version. eq ( self . get_driver_version ( ) ) )
783+ || ( !self . is_firefox ( ) && !major_version. eq ( & self . get_major_browser_version ( ) ) )
784+ {
785+ self . get_logger ( ) . warn ( format ! (
786+ "The {} version ({}) detected in PATH at {} might not be compatible with \
787+ the detected {} version ({}); currently, {} {} is recommended for {} {}.*, \
788+ so it is advised to delete the driver in PATH and retry",
789+ self . get_driver_name( ) ,
790+ & version,
791+ path,
792+ self . get_browser_name( ) ,
793+ self . get_browser_version( ) ,
794+ self . get_driver_name( ) ,
795+ self . get_driver_version( ) ,
796+ self . get_browser_name( ) ,
797+ self . get_major_browser_version( )
798+ ) ) ;
799+ }
800+ self . set_driver_version ( version. to_string ( ) ) ;
801+ return Ok ( PathBuf :: from ( path) ) ;
782802 }
783- self . set_driver_version ( version. to_string ( ) ) ;
784- return Ok ( PathBuf :: from ( path) ) ;
785803 }
786804
787805 // If driver was not in the PATH, try to find it in the cache
@@ -1413,6 +1431,26 @@ pub trait SeleniumManager {
14131431 }
14141432 }
14151433
1434+ fn is_skip_driver_in_path ( & self ) -> bool {
1435+ self . get_config ( ) . skip_driver_in_path
1436+ }
1437+
1438+ fn set_skip_driver_in_path ( & mut self , skip_driver_in_path : bool ) {
1439+ if skip_driver_in_path {
1440+ self . get_config_mut ( ) . skip_driver_in_path = true ;
1441+ }
1442+ }
1443+
1444+ fn is_skip_browser_in_path ( & self ) -> bool {
1445+ self . get_config ( ) . skip_browser_in_path
1446+ }
1447+
1448+ fn set_skip_browser_in_path ( & mut self , skip_browser_in_path : bool ) {
1449+ if skip_browser_in_path {
1450+ self . get_config_mut ( ) . skip_browser_in_path = true ;
1451+ }
1452+ }
1453+
14161454 fn get_cache_path ( & self ) -> Result < Option < PathBuf > , Error > {
14171455 let path = Path :: new ( & self . get_config ( ) . cache_path ) ;
14181456 match create_path_if_not_exists ( path) {
0 commit comments