. Net Стандартная библиотека с использованием selenium / cefsharp - PullRequest
0 голосов
/ 27 мая 2020

Я создал бота Windows Forms, который входит в систему и перемещается по веб-странице, получает некоторые данные и нажимает некоторые кнопки. До сих пор я использовал cefsharp с cefsharp.winforms для отображения браузера в приложении. Я хотел бы перенести эту функциональность в стандартную библиотеку. net, иметь как pnet основной бэкэнд, который будет связываться с ботом и отправлять данные на какой-то фронтенд (в основном я хотел бы портировать winforms в веб-приложение). Я хотел бы иметь стандартную библиотеку. net, чтобы формы pnet core AND win могли использовать одну и ту же основную библиотеку. Насколько я могу судить, cefsharp.offscreen не работает со стандартом. net.

Я проверил пакет Selenium.WebDriver на nuget.org и в найденных зависимостях

.NETStandard 2.0
Newtonsoft.Json (>= 12.0.2)

Что, как я понимаю, означает, что он должен поддерживать. net стандарт 2.0. Но когда я пытаюсь создать объект из класса из. net стандартной библиотеки 2.0, которая использует пакеты Selenium.WebDriver и ChromeDriver из windows форм 4.6.1, я получаю ошибку времени выполнения

'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, я был бы очень признателен :)

1 Ответ

1 голос
/ 28 мая 2020

Наконец разобрался. Таким образом, приложение winforms пыталось найти (seleniums) webdriver.dll внутри папки winforms / bin / debug вместо библиотеки / bin / debug.

Все, что мне нужно было сделать, это установить те же пакеты, которые есть в стандартной библиотеке, в winforms , и он работает!

Я предполагаю, что это ожидаемый рабочий процесс (по какой-то причине, которую я не понимаю), кто-то мог бы уточнить это. Так что, в конце концов, это не имеет ничего общего со стандартом. net, просто я не знаю, как правильно использовать / импортировать библиотеки классов.

...