繁体   English   中英

Asp.net核心:Selenium在当前目录中看不到geckodriver

[英]Asp.net core: Selenium doesn't see geckodriver in current directory

Web API核心2.0项目看不到geckodriver.exe,该如何解决?

我创建了一个ASP.NET Core 2.0 Web API项目。 我将geckodriver.exe放入带有项目的目录中,将“复制到输出目录”更改为“始终复制”。

这是我的控制器:

using System;
using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;

namespace WebApplication1.Controllers
{
    [Route("api/[controller]")]
    public class ValuesController : Controller
    {
        // GET api/values
        [HttpGet]
        public IEnumerable<string> Get()
        {
            if (!System.IO.File.Exists("geckodriver.exe"))
            {
               throw new Exception("error"); 
            }

            using (IWebDriver driver = new FirefoxDriver())
            {
                driver.Navigate().GoToUrl("http://gooogle.com");
            }
            return new string[] { "value1", "value2" };
        }
    }
}

当我启动项目时,出现异常消息

OpenQA.Selenium.DriverServiceNotFoundException:'geckodriver.exe文件在当前目录或PATH环境变量上的目录中不存在。 该驱动程序可以从https://github.com/mozilla/geckodriver/releases下载。

我想知道为什么具有相同代码的.net framework mvc应用程序能很好地工作!

我的问题是:如何解决我的问题? 我在Google上找不到解决方案

将driver.exe复制到以下路径:

C:\Users\[userName]\.nuget\packages\selenium.webdriver\3.6.0\lib\netstandard2.0\

驱动程序已复制到输出目录。 只需使用以下代码行: var driver = new ChromeDriver(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location))

发生这种情况是因为.NET Core项目的NuGet软件包是从全局位置而不是.NET Framework项目的packages文件夹加载的。 要解决此问题,我们需要指定执行文件夹的路径。 (来源: https : //www.automatetheplanet.com/webdriver-dotnetcore2/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM