在自托管的Azure DevOps代理上安装ChromeDriver

时间:2019-04-10 10:23:12

标签: azure azure-devops agent

我最近创建了一个自托管的Azure DevOps代理,并与Google Crome一起安装。是否可以在此服务器上安装Chrome驱动程序?我可以选择要使用的特定版本吗?

我希望此自托管代理使用Chrome驱动程序2.42.0.1。

任何帮助将不胜感激。谢谢!

3 个答案:

答案 0 :(得分:2)

另一种解决方案,可以将Microsoft托管的代理与已安装的Chrome浏览器chrome驱动程序配合使用。

代理已包含环境变量,该环境变量在代理上具有ChromeWebDriver位置(适用于“ windows-2019”和“ vs2017-win2016” Microsoft托管的代理)。 代理(https://github.com/actions/virtual-environments/blob/master/images/win/Windows2019-Readme.md)上也存在firefox和IE驱动程序。

C#代码:

ChromeOptions chromeOptions = new ChromeOptions();
var driverPath = Path.Combine(Directory.GetCurrentDirectory());
var envChromeWebDriver = Environment.GetEnvironmentVariable("ChromeWebDriver");
if(!string.IsNullOrEmpty(envChromeWebDriver) &&
   File.Exists(Path.Combine(envChromeWebDriver, "chromedriver.exe")))
{
    driverPath = envChromeWebDriver;
}
ChromeDriverService defaultService = ChromeDriverService.CreateDefaultService(driverPath);
defaultService.HideCommandPromptWindow = true;
var driver = (IWebDriver) new ChromeDriver(defaultService, chromeOptions);

答案 1 :(得分:0)

我在此处使用 npm install 找到的安装::)

https://www.npmjs.com/package/chromedriver

答案 2 :(得分:0)

这可能是一个较晚的帖子,但是为了对论坛有所帮助,这对我已经有将近十年的历史了,这是我们的整理方式。

默认情况下,“ Azure Pipelines Hosted VS2017映像”(或者在 Classic Editor Agent规范中称为 vs2017-win2016 )已经具有Google Chrome(版本77.0.3865.90 < em>(截至2019年12月3日)和ChromeDriver(截至2019年12月3日为77.0.3865.40)(此处提供更多信息- https://github.com/Microsoft/azure-pipelines-image-generation/blob/master/images/win/Vs2017-Server2016-Readme.md >)

但是由于Windows中环境变量的“系统变量”中缺少PATH,我们仍然面临“硒侧运行器”无法找到ChromeDriver的问题。

Image - Chrome Driver Not found

因此,我们尝试进行更深入的挖掘,发现可以通过在构建过程中上传ChromeDriver,然后将其复制到 C:Program Files < / strong> ..! 甜吗?

让我们简要地介绍一下步骤,以了解如何实现这一目标。

  1. 我们首先必须访问https://chromedriver.chromium.org/downloads 并搜索与以下版本匹配的驱动程序版本 Chrome安装在Hosted Agent(本例中为77版)上 日期)
  2. 接下来,我们在Azure存储库中创建一个文件夹,然后将 该文件夹中的Chromedriver.exe和我们的Sample.side文件(侧文件 可以根据您的喜好命名,这是根据 Selenium IDE) Adding ChromeDriver.exe and sample.side file in the Repo
  3. 现在,我们创建Build流程来压缩该内容 文件夹并从中创建工件以在 发布管道。 Build Pipeline explained
  4. 接下来,我们构建发布管道,并确保 vs2017-win2016代理已被使用
  5. 分配给代理的步骤包括:
  6. 提取zip文件
  7. 使用 NPM 自定义安装Selenium Side Runner 命令-“ 安装-g selenium-side-runner
  8. 然后我们必须从提取的文件中复制ChromeDriver.exe 使用命令提示符转到“ C:\ Program Files \ nodejs”文件夹- 复制“ chromedriver.exe”“ C:\ Program Files \ nodejs”
  9. 最后一步是运行“ selenium-side-runner ” 命令-selenium-side-runner sample.side
  10. 通过检查任务的日志文件,我们将在任务结束时看到测试结果。

希望这会有所帮助..!