Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用selenium/cefsharp的.Net标准库_C#_.net_Selenium_Standards_Cefsharp - Fatal编程技术网

C# 使用selenium/cefsharp的.Net标准库

C# 使用selenium/cefsharp的.Net标准库,c#,.net,selenium,standards,cefsharp,C#,.net,Selenium,Standards,Cefsharp,我已经创建了一个Windows窗体机器人,它可以登录和浏览网页,获取一些数据并单击一些按钮。到目前为止,我一直使用cefsharp和cefsharp.winforms在应用程序中显示浏览器。我想将此功能移植到.net标准库,使用aspnet core后端与bot通信,并将数据发送到一些fronend(基本上我想将winforms移植到web应用程序)。 我希望有一个.net标准库,这样aspnet core和win forms可以使用相同的核心库。 据我所知,cefsharp.offscreen

我已经创建了一个Windows窗体机器人,它可以登录和浏览网页,获取一些数据并单击一些按钮。到目前为止,我一直使用cefsharp和cefsharp.winforms在应用程序中显示浏览器。我想将此功能移植到.net标准库,使用aspnet core后端与bot通信,并将数据发送到一些fronend(基本上我想将winforms移植到web应用程序)。 我希望有一个.net标准库,这样aspnet core和win forms可以使用相同的核心库。 据我所知,cefsharp.offscreen不适用于.net标准

我在nuget.org上和找到的依赖项下检查了Selenium.WebDriver包

.NETStandard 2.0
Newtonsoft.Json (>= 12.0.2)
据我所知,这意味着它应该支持.net标准2.0。但是,当我试图从.net标准2.0 lib中的一个类创建一个对象,该类使用windows forms 4.6.1中的Selenium.WebDriver和ChromeDriver包时,我遇到了一个运行时错误

'Could not load file or assembly 'WebDriver, Version=3.141.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified
WinForms 4.6.1应用程序中的代码:

public Form1()
{
    InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
    var test = new StandardLib.TestingWebDriver();
    test.TestDriver();
}
来自我的StardardLib.net标准2.0库项目的代码:

public class TestingWebDriver
{
    public void TestDriver() {
        var driver = new ChromeDriver();
        driver.Navigate().GoToUrl("https://google.com");
        Console.WriteLine(driver.PageSource);
    }
}

我一整天都在尝试不同的方法来解决这个问题,但没有成功。如果你知道如何解决这个问题,或者我可以用什么替代cefsharp/selenium,我将非常感激:)

终于找到了答案。因此,winforms应用程序试图在winforms/bin/debug文件夹中查找(seleniums)webdriver.dll,而不是库的/bin/debug

我所要做的就是将标准库中的相同软件包也安装到winforms上,它可以正常工作


我假设这是预期的工作流程(出于某些我不理解的原因),有人可以对此进行详细说明。因此,毕竟它与.net标准无关,只是我不知道如何正确使用/导入类库。

最终解决了这个问题。因此,winforms应用程序试图在winforms/bin/debug文件夹中查找(seleniums)webdriver.dll,而不是库的/bin/debug

我所要做的就是将标准库中的相同软件包也安装到winforms上,它可以正常工作


我假设这是预期的工作流程(出于某些我不理解的原因),有人可以对此进行详细说明。因此,毕竟它与.net标准无关,只是我不知道如何正确使用/导入类库。

我以前没有使用C#for Selenium,但部分问题可能是使用.net标准。微软的“.net”术语非常混乱。。。请参阅此链接:也请参阅此链接:值得注意的是,.net core包含和/或与大多数.net framework库兼容(因此,.net core可以导入几乎任何.net framework库,并在某个时候包含所有这些库…)您也可以考虑使用WebVIEW或IE嵌入服务器提供接口……我已经阅读了这两个链接,但仍然困惑。当为.net标准库和.net framework for winforms选择“正确”版本时,它编译时不会出现问题。我跟着桌子走。如果我理解正确,我可以创建一个.net framework lib项目,winforms和asp.net核心应用程序都可以使用它?我会试试的,谢谢!我以前没有使用C#来表示Selenium,但部分问题可能是使用.net标准。微软的“.net”术语非常混乱。。。请参阅此链接:也请参阅此链接:值得注意的是,.net core包含和/或与大多数.net framework库兼容(因此,.net core可以导入几乎任何.net framework库,并在某个时候包含所有这些库…)您也可以考虑使用WebVIEW或IE嵌入服务器提供接口……我已经阅读了这两个链接,但仍然困惑。当为.net标准库和.net framework for winforms选择“正确”版本时,它编译时不会出现问题。我跟着桌子走。如果我理解正确,我可以创建一个.net framework lib项目,winforms和asp.net核心应用程序都可以使用它?我会试试的,谢谢!