Skip to content

Commit 9c2f475

Browse files
committed
[rust] Read LATEST_STABLE and then LATEST_RELEASE for msedgedriver in latest fallback
1 parent e51d1aa commit 9c2f475

File tree

1 file changed

+31
-15
lines changed

1 file changed

+31
-15
lines changed

rust/src/edge.rs

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)