Chrome浏览器更新时更新chromedriver

问题描述 投票:0回答:2

是否有必要在Chrome浏览器更新时更新chromedriver(用于自动化机器人)?或者机器人可以使用较旧版本的chromedriver和较新版本的浏览器运行良好?

google-chrome browser selenium-chromedriver
2个回答
0
投票

并非总是如果版本不兼容,那么答案是肯定的。

您可以在此处查看chromedriver版本列表及其支持的浏览器版本:

https://chromedriver.storage.googleapis.com/2.26/notes.txt

希望这可以帮助


0
投票

是的,每当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" } 变量放在一起,相对于脚本位置。

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.