Velvet Star Monitor

Standout celebrity highlights with iconic style.

updates

How to update chrome driver for windows 10 [closed]

Writer Andrew Mclaughlin

Hello I am looking to update my chrome driver to the latest version but ant find any information on updating the driver just info on installing it. What do I need to do to update the driver to the latest version?

1

2 Answers

chromedriver is a single self-contained executable file. Just replace your existing version with a newer one.

  1. download the latest version of chromedriver_win32.zip from
  2. unzip the file to extract chromedriver.exe
  3. replace your existing file with this new executable.

Recently I've found that chromedriver has almost one-to-one version accordance now (there was three-last-releases support policy for chromedriver 2.46). See version selection guide here:

I've wrote simple powershell script for updating chromedriver automatically.

Run this script when you need to update crhomedriver (like a build step in CI/CD, just before running selenium web tests):

[CmdletBinding()]
param ( [string]$ChromeDir="C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
)
if (-Not (Test-Path $ChromeDir -PathType Leaf)) { Write-Output "Chrome not found in '$ChromeDir'. Please, install chrome or specify custom chrome location with -ChromeDir argument." Exit 1
}
$thisScriptRoot = if ($PSScriptRoot -eq "") { "." } else { $PSScriptRoot }
$chromeDriverRelativeDir = "Selenium"
$chromeDriverDir = $(Join-Path $thisScriptRoot $chromeDriverRelativeDir)
$chromeDriverFileLocation = $(Join-Path $chromeDriverDir "chromedriver.exe")
$chromeVersion = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($ChromeDir).FileVersion
$chromeMajorVersion = $chromeVersion.split(".")[0]
if (-Not (Test-Path $chromeDriverDir -PathType Container)) { New-Item -ItemType directory -Path $chromeDriverDir
}
if (Test-Path $chromeDriverFileLocation -PathType Leaf) { # get version of curent chromedriver.exe $chromeDriverFileVersion = (& $chromeDriverFileLocation --version) $chromeDriverFileVersionHasMatch = $chromeDriverFileVersion -match "ChromeDriver (\d+\.\d+\.\d+(\.\d+)?)" $chromeDriverCurrentVersion = $matches[1] if (-Not $chromeDriverFileVersionHasMatch) { Exit }
}
else { # if chromedriver.exe not found, will download it $chromeDriverCurrentVersion = ''
}
if ($chromeMajorVersion -lt 73) { # for chrome versions < 73 will use chromedriver v2.46 (which supports chrome v71-73) $chromeDriverExpectedVersion = "2.46" $chromeDriverVersionUrl = ""
}
else { $chromeDriverExpectedVersion = $chromeVersion.split(".")[0..2] -join "." $chromeDriverVersionUrl = "" + $chromeDriverExpectedVersion
}
$chromeDriverLatestVersion = Invoke-RestMethod -Uri $chromeDriverVersionUrl
Write-Output "chrome version: $chromeVersion"
Write-Output "chromedriver version: $chromeDriverCurrentVersion"
Write-Output "chromedriver latest: $chromeDriverLatestVersion"
# will update chromedriver.exe if MAJOR.MINOR.PATCH
$needUpdateChromeDriver = $chromeDriverCurrentVersion -ne $chromeDriverLatestVersion
if ($needUpdateChromeDriver) { $chromeDriverZipLink = "" + $chromeDriverLatestVersion + "/chromedriver_win32.zip" Write-Output "Will download $chromeDriverZipLink" $chromeDriverZipFileLocation = $(Join-Path $chromeDriverDir "chromedriver_win32.zip") Invoke-WebRequest -Uri $chromeDriverZipLink -OutFile $chromeDriverZipFileLocation Expand-Archive $chromeDriverZipFileLocation -DestinationPath $(Join-Path $thisScriptRoot $chromeDriverRelativeDir) -Force Remove-Item -Path $chromeDriverZipFileLocation -Force $chromeDriverFileVersion = (& $chromeDriverFileLocation --version) Write-Output "chromedriver updated to version $chromeDriverFileVersion"
}
else { Write-Output "chromedriver is actual"
}

You can configure relative directory where you need to place chromedriver with $chromeDriverRelativeDir variable, relatively of script location.

7