是否有必要在Chrome浏览器更新时更新chromedriver(用于自动化机器人)?或者机器人可以使用较旧版本的chromedriver和较新版本的浏览器运行良好?
并非总是如果版本不兼容,那么答案是肯定的。
您可以在此处查看chromedriver版本列表及其支持的浏览器版本:
https://chromedriver.storage.googleapis.com/2.26/notes.txt
希望这可以帮助
是的,每当qazxsw poi浏览器更新时,有必要更新qazxsw poi。你可以在这里找到选择chromedriver
版本的指南:chrome
最近我发现chromedriver
现在几乎是一对一的版本(https://sites.google.com/a/chromium.org/chromedriver/downloads/version-selection有三个最后发布的支持政策)。
我有chromedriver
自动更新chromedriver 2.46
(在Windows平台上)。
当您需要更新wrote simple powershell script时运行此脚本(我运行此脚本作为我的CI中的构建步骤,就在我运行selenium web测试之前):
chromedriver
您可以配置相对目录,您需要将crhomedriver
与$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)) {
$dir = 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"
}
变量放在一起,相对于脚本位置。
希望这可以帮助。