@@ -386,7 +386,16 @@ pub trait SeleniumManager {
386
386
// Check browser in PATH
387
387
let browser_in_path = self . find_browser_in_path ( ) ;
388
388
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
+ }
390
399
}
391
400
browser_in_path
392
401
}
@@ -756,32 +765,41 @@ pub trait SeleniumManager {
756
765
757
766
// Use driver in PATH when the user has not specified any browser version
758
767
if use_driver_in_path {
759
- let version = driver_in_path_version. unwrap ( ) ;
760
768
let path = driver_in_path. unwrap ( ) ;
761
- let major_version = self . get_major_version ( & version) ?;
762
769
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: {}" ,
777
773
self . get_driver_name( ) ,
778
- self . get_driver_version( ) ,
779
- self . get_browser_name( ) ,
780
- self . get_major_browser_version( )
774
+ path
781
775
) ) ;
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) ) ;
782
802
}
783
- self . set_driver_version ( version. to_string ( ) ) ;
784
- return Ok ( PathBuf :: from ( path) ) ;
785
803
}
786
804
787
805
// If driver was not in the PATH, try to find it in the cache
@@ -1413,6 +1431,26 @@ pub trait SeleniumManager {
1413
1431
}
1414
1432
}
1415
1433
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
+
1416
1454
fn get_cache_path ( & self ) -> Result < Option < PathBuf > , Error > {
1417
1455
let path = Path :: new ( & self . get_config ( ) . cache_path ) ;
1418
1456
match create_path_if_not_exists ( path) {
0 commit comments