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?
chromedriver is a single self-contained executable file. Just replace your existing version with a newer one.
- download the latest version of chromedriver_win32.zip from https://sites.google.com/a/chromium.org/chromedriver/downloads
- unzip the file to extract chromedriver.exe
- replace your existing file with this new executable.
Recently I 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: https://sites.google.com/a/chromium.org/chromedriver/downloads/version-selection
I've wrote simple powershell script for updating chromedriver
automatically.
Run this script when you need to update crhomedriver
(I run this script as build step in my CI, just before I run selenium web tests):
$thisScriptRoot = if ($PSScriptRoot -eq "") { "." } else { $PSScriptRoot }
$chromeDriverRelativeDir = "Selenium"
$chromeDriverDir = $(Join-Path $thisScriptRoot $chromeDriverRelativeDir)
$chromeDriverFileLocation = $(Join-Path $chromeDriverDir "chromedriver.exe")
$chromeVersion = [System.Diagnostics.FileVersionInfo]::GetVersionInfo("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe").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 = "https://chromedriver.storage.googleapis.com/LATEST_RELEASE"
}
else {
$chromeDriverExpectedVersion = $chromeVersion.split(".")[0..2] -join "."
$chromeDriverVersionUrl = "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_" + $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 = "https://chromedriver.storage.googleapis.com/" + $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.
来源:https://stackoverflow.com/questions/49824109/how-to-update-chrome-driver-for-windows-10