MCPcopy Create free account
hub / github.com/SeleniumHQ/selenium / discover_local_browser

Method discover_local_browser

rust/src/lib.rs:507–627  ·  view source on GitHub ↗
(&mut self)

Source from the content-addressed store, hash-verified

505 }
506
507 fn discover_local_browser(&mut self) -> Result<(), Error> {
508 let mut download_browser = self.is_force_browser_download();
509 if download_browser && self.is_safari() {
510 self.get_logger().debug(
511 "Force browser download requested for Safari, but downloads are not supported; using local discovery",
512 );
513 download_browser = false;
514 }
515 if !download_browser && !self.is_electron() {
516 let major_browser_version = self.get_major_browser_version();
517 let original_browser_path = self.get_browser_path().to_string();
518 match self.discover_browser_version()? {
519 Some(discovered_version) => {
520 if !self.is_safari() {
521 self.get_logger().debug(format!(
522 "Detected browser: {} {}",
523 self.get_browser_name(),
524 discovered_version
525 ));
526 }
527 if self.is_browser_version_specific()
528 && !self.get_browser_version().eq(&discovered_version)
529 {
530 if !original_browser_path.is_empty() {
531 self.set_fallback_driver_from_cache(false);
532 return Err(anyhow!(format!(
533 "The browser at {} has version {} but {} {} was requested; \
534 remove --browser-path to allow a browser download",
535 original_browser_path,
536 discovered_version,
537 self.get_browser_name(),
538 self.get_browser_version(),
539 )));
540 }
541 download_browser = true;
542 } else {
543 let discovered_major_browser_version = self
544 .get_major_version(&discovered_version)
545 .unwrap_or_default();
546
547 if self.is_browser_version_stable() || self.is_browser_version_unstable() {
548 let online_browser_version = self.request_browser_version()?;
549 if online_browser_version.is_some() {
550 let major_online_browser_version =
551 self.get_major_version(&online_browser_version.unwrap())?;
552 if discovered_major_browser_version
553 .eq(&major_online_browser_version)
554 {
555 self.get_logger().debug(format!(
556 "Discovered online {} version ({}) is the same as the detected local {} version",
557 self.get_browser_name(),
558 discovered_major_browser_version,
559 self.get_browser_name(),
560 ));
561 self.set_browser_version(discovered_version);
562 } else {
563 self.get_logger().debug(format!(
564 "Discovered online {} version ({}) is different to the detected local {} version ({})",

Callers 1

setupMethod · 0.80

Implementers 8

edge.rsrust/src/edge.rs
iexplorer.rsrust/src/iexplorer.rs
safaritp.rsrust/src/safaritp.rs
electron.rsrust/src/electron.rs
chrome.rsrust/src/chrome.rs
firefox.rsrust/src/firefox.rs
grid.rsrust/src/grid.rs
safari.rsrust/src/safari.rs

Calls 15

is_safariMethod · 0.80
is_electronMethod · 0.80
get_browser_versionMethod · 0.80
is_emptyMethod · 0.80
get_major_versionMethod · 0.80
set_browser_versionMethod · 0.80

Tested by

no test coverage detected