我已经创建了一个Windows窗体机器人,它可以登录和浏览网页,获取一些数据,并单击一些按钮。到目前为止,我一直使用cefsharp和cefsharp.winforms在应用程序中显示浏览器。我想把这个功能移植到.net标准库,有可以与机器人通信的aspnet核心后端,并将数据发送到一些前端(基本上我想把winforms移植到web应用程序)。我想有一个.net标准库,这样ASP.NET核心和win表单可以使用相同的核心库。据我所知,cefsharp.offscreen不支持.net标准。
我检查了nuget.org上的Selenium.WebDriver包,在依赖项下找到
.NETStandard 2.0
Newtonsoft.Json (>= 12.0.2)根据我的理解,这意味着它应该支持.net标准2.0。但是,当我尝试从使用.net forms 4.6.1中的Selenium.WebDriver和ChromeDriver包的windows标准2.0lib中的类创建对象时,我得到一个运行时错误
'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的任何替代方案,我将非常感激:)
发布于 2020-05-28 17:56:58
终于想明白了。因此,winforms应用程序试图在winforms /bin/debug文件夹中查找(Selenium) webdriver.dll,而不是库的/bin/debug。
我所要做的就是将我在标准库中安装的相同的包安装到winforms以及中,它就可以工作了!
我假设这是预期的工作流程(出于某些我不理解的原因),有人可以详细说明一下。所以毕竟这与.net标准没有任何关系,只是我不知道如何正确使用/导入类库。
https://stackoverflow.com/questions/62049901
复制相似问题