[英]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.