我使用Selenium WebDriverManager nuget包来管理驱动程序版本.当我try 获取边缘驱动程序时:

var driverManager = new DriverManager();
driverManager.SetUpDriver(new EdgeConfig());

故障原因:

System.Net.WebException: 'The remote server returned an error: (404) Not Found.'

我试着更新我的nuget软件包,但没用.我还发现了一个关于Chrome driver-System.Net.WebException : The remote server returned an error: (404) Not Found的相关但尚未回答的问题

知道是什么导致了这个错误以及如何修复它吗?

推荐答案

总之,WebDriverManager用于下载更新驱动程序的URL已经更改,但NuGet包尚未更新为使用新的URL(more info)


原件:

然后查看详细信息,你会看到它正在使用并试图转到的URL是https://msedgedriver.azureedge.net/103.0.1264.51/edgedriver_win64.zip,它不存在(在判断我自己的最新边缘驱动程序时,它是.49,所以.51不存在,因为更新还没有达到那么高.

该版本适用于MAC和Linux,但不适用于Windows.为了解决这个问题,我认为可以将类型设置为仅Windows或其他类型,这样它就不会 Select Windows不存在的版本.这个修正在理论上是可行的,因为我还没有试过.希望有帮助.

尼克尔

编辑这个以提供更新:我try 了这个,但没有办法设置操作系统,它正在识别操作系统,因为URL扩展名是win64...我认为这是webdriver manager的一个缺陷,需要解决,因为它正确地识别了操作系统,即使你在代码中手动设置它来获取最新版本,它也会try 获取仅发布到Linux和Mac的最新版本(似乎他们需要包括一个过滤器来查找最新版本并在操作系统上匹配,但不确定在哪里报告以修复它).如果手动将版本设置为"https://msedgedriver.azureedge.net.0.1154.0",这是win64的最新版本,那么它会再次工作.你可以在他们的网站上看到所有的版本(https://msedgedriver.azureedge.net),但正如我所说的,它是一个最新的或默认的是只看日期,而不是由操作系统过滤,所以当他们删除一个新的,它不是所有的操作系统,然后它打破了(这是我的假设,有困难找到它在他们的源代码,我不认为可以通过VS当你安装包).

如果有人发现什么,请插话!我很想知道是否有一个可行的解决方案来过滤我们自己,直到它被修复.

Csharp相关问答推荐

. NET 8控制台应用程序DI错误无法解析Microsoft. Extension. Logging. ILoggerFactory类型的服务'''

将XPS转换为PDF C#

Blazor Foreach仅渲染最后一种 colored颜色

(乌龙)1&#比c#中的UL&#慢吗?

有没有办法使.NET 6应用程序在特定的.NET 6运行时版本上运行

在命名管道上使用GRPC ASP.NET核心时如何配置命名管道权限

未找到任何HTTP触发器.成功部署Azure Functions Project后(c#)

BlockingCollection T引发意外InvalidOperationException

在.NET 7.0 API控制器项目中通过继承和显式调用基类使用依赖项注入

如何比较C#中的L和ł(波兰字符)返回TRUE

为什么我的伺服电机不动,下面的代码?

System.NotSupportdException:流不支持读取

EF Core 7-忽略模型绑定中的虚拟属性

C#System.Commandline:如何向命令添加参数以便向其传递值?

我是否应该注销全局异常处理程序

如何从原始图像到新创建的图像获得相同的特定 colored颜色 ,并且具有相同的 colored颜色 量和相同的宽度和高度?

在Unity C#中按键点击错误的参数

使用ITfoxtec.Identity.Saml2解析相同键多值SAML 2声明

有没有更好的方法来使用LINQ获取整行的计算组

ASP.NET MVC-从控制器操作流式传输视频