Форма Windows .NET — Взаимодействие с каталогом файлов веб-сайта, открытым из webview2

#winforms #webview2

Вопрос:

Я использую webview2 в приложении Windows Forms .NET Framework для автоматической загрузки файлов на веб-сайт. Сайт поддерживает загрузку только одного файла за раз, и нам часто приходится загружать сотни файлов. Я использовал java-скрипт в webview2 для выполнения шагов для загрузки.

Моя проблема в том, что для указания файла для загрузки мне нужно взаимодействовать с диалоговым окном файла, которое открывается при нажатии кнопки с веб-сайта в веб-представлении. В настоящее время я заполняю путь к файлу для загрузки в файловом журнале с помощью клавиш отправки, что, на мой взгляд, является плохим процессом.

Есть ли способ, которым я могу взаимодействовать с каталогом файлов, созданным с веб-сайта, через мое приложение Windows Forms? Если да, то как бы я начал выяснять, как это сделать?

Вот более подробная информация о том, чем я сейчас занимаюсь:

В веб-представлении, чтобы начать загрузку, вам нужно нажать несколько флажков, чтобы выбрать параметры загрузки, что необходимо делать каждый раз, поэтому я сначала запускаю эти команды:

 await webview2.ExecuteScriptAsync($"document.getElementById('SelectedTypeId').click();");
await webview2.ExecuteScriptAsync($"document.getElementById('AutoAcceptChkbox').click();"); 
 

Затем есть команда, чтобы нажать кнопку загрузки, которая открывает диалоговое окно с файлом:

 await webview2.ExecuteScriptAsync($"document.getElementById('uploadFile').click();");
 

Отсюда я получаю файловый журнал и использую клавиши отправки.Отправка(«Путь к файлу») и ключи отправки.Отправьте(«{ВВЕДИТЕ}»), чтобы указать путь к файлу и выбрать файл.

Как только файловый каталог закроется, у меня появится дополнительная команда, чтобы нажать кнопку импорта, чтобы начать импорт.

Проблема, с которой я столкнулся, связана с файловым журналом. Очевидно, что использовать клавиши отправки для заполнения пути к файлу-не самый лучший процесс. Кроме того, я должен заставить приложение «ждать» вокруг действий sendkeys, чтобы у журнала файлов было время появиться и закрыться, прежде чем двигаться вперед, я держу пари, что в какой-то момент возникнут ошибки, если приложение не будет ждать достаточно долго.

Комментарии:

1. Разве ты не можешь использовать а HttpClient ? Он создан для таких случаев, как этот.

2. Я уже использовал webview2 для какой-то другой автоматизации на сайте и ничего другого не рассматривал. Я посмотрю, спасибо!