繁体   English   中英

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

[英]WebDriverManager - 'The remote server returned an error: (404) Not Found.'

我正在使用 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)未找到

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

总而言之,WebDriverManager 用于下载更新驱动程序的 URL 已更改,但 NuGet 包尚未更新为使用新 URL(更多信息


原文:所以我有同样的问题,如果你打破你的代码并在 driverManager.SetUpDriver(new EdgeConfig());

并查看详细信息,您将看到它正在使用并尝试访问的 URL 在这里https://msedgedriver.azureedge.net/103.0.1264.51/edgedriver_win64.zip不存在(在检查我自己的最新边缘驱动程序时)是 0.49,所以 .51 不存在,因为更新还没有那么高。

该版本适用于 MAC 和 Linux,但不适用于 Windows。 对于修复,我认为您可以将类型设置为仅 Windows 或其他类型,以便它停止获取 Windows 不存在的版本。 这个修复是理论上的,因为我还没有尝试过。 希望能帮助到你。

妮可

编辑这个以提供更新:我试过这个,没有办法设置操作系统,它正在识别操作系统,因为 URL 扩展名是 win64 ......我认为这是 webdriver 管理器的一个错误,需要最终解决因为它可以正确识别操作系统,即使您在代码中手动设置它以获取最新版本,它也会尝试获取仅发布到 Linux 和 Mac 的最新版本(似乎他们需要包含一个过滤器来查找最新版本并在操作系统上匹配,而不是确定在哪里报告此问题以修复它)。 如果您手动将版本设置为“100.0.1154.0”,这是 win64 的最新版本,那么它会再次起作用。 您可以在他们的网站 ( https://msedgedriver.azureedge.net ) 上查看所有版本,但就像我说的那样,它是最新的或默认的只是查看日期而不是由操作系统过滤,所以当他们删除一个新版本时并且它不适用于所有操作系统,然后它会中断(这是我的假设,在他们的源代码中找不到它,我认为在安装软件包时无法通过 VS 获得它)。

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

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

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

暂无
暂无

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

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