C# 使用selenium/cefsharp的.Net标准库
我已经创建了一个Windows窗体机器人,它可以登录和浏览网页,获取一些数据并单击一些按钮。到目前为止,我一直使用cefsharp和cefsharp.winforms在应用程序中显示浏览器。我想将此功能移植到.net标准库,使用aspnet core后端与bot通信,并将数据发送到一些fronend(基本上我想将winforms移植到web应用程序)。 我希望有一个.net标准库,这样aspnet core和win forms可以使用相同的核心库。 据我所知,cefsharp.offscreen不适用于.net标准 我在nuget.org上和找到的依赖项下检查了Selenium.WebDriver包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
.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核心应用程序都可以使用它?我会试试的,谢谢!