WebDriverManager -"远程服务器返回错误:(404) 未找到。



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

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

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

我已经尝试更新我的nuget包,但没有帮助。我还发现了一个有关Chrome驱动程序的相关但未回答的问题- System.Net.WebException:远程服务器返回了一个错误:(404)Not found

任何想法是什么导致这个错误和如何修复它?

总的来说,WebDriverManager用来下载更新的驱动的url已经改变了,但是NuGet包还没有更新到使用新的url(更多信息)


原始:所以我有同样的问题,如果你打破你的代码并进入它在driverManager。SetUpDriver(新EdgeConfig ());

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

该版本适用于MAC和Linux,但不适用Windows。为了修复,我认为你可以将类型设置为Windows only或其他东西,这样它就不会选择不存在的Windows版本。这种修复是理论上我还没有试过。希望能有所帮助。

妮可我试过了,没有办法设置操作系统,它正在识别操作系统,因为URL扩展名是win64…我认为这是webdriver管理器的一个bug,需要在他们的终端上解决,因为它可以正确识别操作系统,即使你在代码中手动设置它来抓取最新的,它也会尝试抓取只发布到Linux和mac上的最新版本(似乎他们需要包含一个过滤器来查找最新的和匹配的操作系统,不知道在哪里报告这个问题,虽然得到修复)。如果您手动将版本设置为"100.0.1154.0";这是最新的win64,然后它又工作了。你可以在他们的网站(https://msedgedriver.azureedge.net)上看到所有的版本,但就像我说的,它是一个最新的或默认的,只看日期,而不是通过操作系统过滤,所以当他们放弃一个新的,它不是所有的操作系统,然后它就坏了(这是我的假设,在他们的源代码中很难找到它,我认为当你安装包时,不能通过VS)。

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

这个解决方案对我有效,我只需要将VersionResolveStrategy.MatchingBrowser参数添加到驱动程序的初始化中,然后它可以从服务器找到并下载匹配的版本:

new DriverManager().SetUpDriver(new EdgeConfig(), VersionResolveStrategy.MatchingBrowser);

相关内容

  • 没有找到相关文章

最新更新