Selenium 在web 项目中

img

运行后报错:
System.IO.FileLoadException
  HResult=0x80131040
  Message=未能加载文件或程序集“System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”
  或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)

我在NuGet中引用的是 :Selenium.Support

using OpenQA.Selenium;
using OpenQA.Selenium.Edge;


 public void UriAccess(string url, int millisecondsTimeout = 5000)
    {
        var web = new EdgeDriver();                                    //新建Edge(这一步将打开浏览器),像Edge这类的会打开浏览器的窗口(包括任务栏都会看见)
        web.Manage().Window.Minimize();                                //最小化Edge
        web.Manage().Timeouts().PageLoad = TimeSpan.FromMilliseconds(millisecondsTimeout);//设定页面加载的等待时长上限,如超过该时长将抛出异常.
        try
        {
            web.Url = url;                                         //阻塞线程以等待页面完全加载完毕,如果超过设定的时间(默认60s)就会抛出异常
            web.Navigate().GoToUrl(url);                                                            //web.Navigate().GoToUrl(address);                                                       //web.Navigate().GoToUrl(address);
        }
        catch (WebDriverTimeoutException) { }                        //忽略超时所抛异常
        try
        {
            var get_text = web.FindElement(By.XPath("//*[@id=\\\"specdata\\"));
            int s = 0;//这里就是简单的通过XPath读取文本(这个文本类似于选中复制,而不是html结构文本)
        }
        catch (Exception) { }                                        //有很多可能的异常会抛出所以视情况再决定如何catch
        web.Quit();                                                  //关闭Edge进程,如果不执行这一句,浏览器的进程(包括WebDriver进程)会一直打开着,需手动关闭.
    }

请问 有没有人遇见过这个问题,怎么解决,谢谢

这个错误信息提示你在程序中使用了 System.Runtime 版本 6.0.0.0,但是在程序集清单中找到的是不匹配的版本。

这个问题可能是因为你项目中已经有了一个版本为6.0.0.0的 System.Runtime,而Selenium.Support包中又依赖了另一个版本的 System.Runtime 导致的。

解决方案:

确保你的项目中的 System.Runtime 版本和 Selenium.Support 包中的 System.Runtime 版本相同,可以通过在Nuget中查看 Selenium.Support 包的详情来确认版本号。
将项目中的 System.Runtime 版本更新或降级到 Selenium.Support 包中使用的版本
你可以尝试用其它版本的 Selenium.Support 来试试。