【问题标题】:Unit Testing Visual Studio Online Selenium ChromeDriver Exception单元测试 Visual Studio Online Selenium ChromeDriver 异常
【发布时间】:2017-03-29 11:37:29
【问题描述】:

我在单元测试项目中使用 Selenium ChromeDriver 来测试网页上的某些操作...

var chromeDriver = new ChromeDriver(); chromeDriver.Navigate().GoToUrl("https://www.google.com");

已经从 nuget 安装了 Chrome 驱动

Install-Package Selenium.WebDriver.ChromeDriver -Version 2.28.0.

在 Visual Studio Online 中构建我的项目时,我收到一些错误:

System.InvalidOperationException:未知错误:找不到 Chrome 二进制文件 (驱动信息:chromedriver=2.28.455520

有什么办法解决这个问题吗?

【问题讨论】:

  • 将 chromedriver.exe 添加到项目的 bin 文件夹中。
  • 是否添加 Nuget Installer 步骤来恢复包?你能在这里分享详细的构建日志吗?
  • 那台计算机上是否安装了当前版本的 Chrome?
  • 是的,但问题不在我的电脑上....在visual studio online - builds上
  • 您使用内部构建代理吗?您可以手动在该机器上构建和运行测试吗? (Chrome 在托管代理中不可用,托管代理作为无法进行交互式测试的服务运行)

标签: c# unit-testing selenium azure-devops selenium-chromedriver


【解决方案1】:

我不使用命令行为 NuGet 安装东西,我使用 VS 中的菜单选项。

  1. 打开 VS 并在解决方案资源管理器中单击您的项目。
  2. 从菜单中单击“项目”>“管理 NuGet 包...”,

查看此处显示的已安装内容以及是否有任何更新。您可以尝试通过我上面描述的菜单卸载并重新安装,看看是否有帮助。我一直按照描述使用 NuGet,没有这个问题。

【讨论】:

  • 我从 nuget selenium 驱动程序添加,仍然得到这个错误 System.InvalidOperationException: unknown error: cannot find Chrome binary (Driver info: chromedriver=2.28.455520
【解决方案2】:

ChromeDriver 无法找到 Chrome 二进制文件,正如错误消息所示。请检查并确保 Chrome 浏览器已安装在运行测试的构建代理或测试机器上。

【讨论】:

    【解决方案3】:

    一般chrome会安装在路径-C:\Program Files (x86)\Google\Chrome\Application

    所以请检查安装路径。如果 chrome 不在该路径中,则卸载旧的并使用链接安装 chrome - http://filehippo.com/download_google_chrome/

    应安装以下 Nuget 包

    1. selenium.webdriver
    2. selenium.webdriver.chromedriver

    以下代码将打开 chrome 并导航到谷歌页面

    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using OpenQA.Selenium;
    using OpenQA.Selenium.Support;
    using OpenQA.Selenium.Chrome;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                IWebDriver driver = new ChromeDriver();
                driver.Navigate().GoToUrl("http://google.com");
            }
        }
    }
    

    【讨论】:

      【解决方案4】:

      您尚未在 System PATH 变量中设置 chromedriver 二进制文件的路径,这可以在代码中进行。在初始化驱动程序对象之前执行此操作。

      System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
      

      【讨论】:

      • "/path/to/chromedriver" 从我的电脑或到我的 UntiTest 项目中的文件夹?
      • 通过 NuGet 安装驱动程序时不需要这样做。我的工作很好,没有设置属性,我使用了 NuGet。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-22
      • 2013-01-20
      • 1970-01-01
      • 2010-09-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多