问题描述
在Azure VM上运行自动化测试,并希望在运行测试之前保证安装最新版本的Chrome。他们使用WebDriverManager.Net来自动管理Selenium WebDriver二进制文件,这意味着他们始终使用最新版本的这些二进制文件。但是,每当版本更改时,下一次运行测试时就会出现以下错误:
System.InvalidOperationException: session not created: This version of ChromeDriver only supports Chrome version 104.Current browser version is 103.0.5060.134 with binary path C:\Program Files (x86)\Google\Chrome\Application\chrome.exe (SessionNotCreated).
他们目前的”解决方案”是远程连接到VM,打开Chrome并更新它。有时还需要重新启动VM。虽然这种方法有效,但操作繁琐,理想情况下希望在每次运行测试之前自动完成。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
在Azure DevOps中创建一个PowerShell任务,并添加以下命令:
"C:\Program Files (x86)\Google\Update\GoogleUpdate.exe" /c | cmd
这样我们就在PowerShell中运行Google更新程序的命令,它会在运行其他任务之前更新Google Chrome。我们将命令的输出通过管道传递给cmd。
方案2
请注意,这个方案可能会导致Chrome的自动更新功能被禁用,因此请谨慎使用。
另一种方法是禁用Chrome的自动更新功能,并在每次运行测试之前手动更新Chrome。以下是具体步骤:
1. 打开Chrome浏览器。
2. 在地址栏中输入chrome://settings/help
并按下Enter键。
3. 在帮助页面中,查看Chrome的当前版本号。
4. 如果有新版本可用,点击”立即重新启动”按钮以更新Chrome。
5. 在Azure VM上运行自动化测试之前,确保Chrome已更新到最新版本。
请注意,禁用Chrome的自动更新功能可能会导致安全风险,因为您将无法及时获得最新的安全补丁和功能更新。因此,建议在测试完成后重新启用自动更新功能。
方案3
请注意,这个方案可能会导致Chrome的自动更新功能被禁用,因此请谨慎使用。
另一种方法是使用计划任务来定期检查并更新Chrome。以下是具体步骤:
1. 打开计划任务程序(Task Scheduler)。
2. 在左侧面板中,选择”创建基本任务”。
3. 输入任务的名称和描述,然后点击”下一步”。
4. 选择”每天”或其他适当的触发器类型,然后点击”下一步”。
5. 在”操作”步骤中,选择”启动程序”,然后点击”下一步”。
6. 在”程序/脚本”字段中,输入Chrome的安装路径(通常是C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
)。
7. 在”参数”字段中,输入/update
。
8. 点击”下一步”,然后点击”完成”。
9. 在Azure VM上运行自动化测试之前,确保计划任务已正确配置,并且Chrome会在每天或其他指定的时间自动更新。
请注意,禁用Chrome的自动更新功能可能会导致安全风险,因为您将无法及时获得最新的安全补丁和功能更新。因此,建议在测试完成后重新启用自动更新功能。
以上是几种在Azure VM上保证安装最新版本的Chrome的解决方案。您可以根据自己的需求选择适合您的方法。