Как в webview2 Заполнить поле типа file?
Много лет назад был найден способ заполнения полей type="file"
еще для webbrowser.
async Task PopulateInputFile_poster(string file_poster)
{
ExecuteScript("document.getElementById(\"fln1\").focus();");
// delay the execution of SendKey to let the Choose File dialog show up
var sendKeyTask = Task.Delay(1000).ContinueWith((_) =>
{
// this gets executed when the dialog is visible
SendKeys.Send(disk + "" + "poster.webp" + "{ENTER}");
}, TaskScheduler.FromCurrentSynchronizationContext());
ExecuteScript("document.getElementById(\"fln1\").click();"); // this shows up the dialog
await sendKeyTask;
// delay continuation to let the Choose File dialog hide
await Task.Delay(1000);
}
async Task Populate()
{
ExecuteScript("document.getElementById(\"fln1\").focus();");
await PopulateInputFile_poster("fln1");
}
И потом все это вызывается при нажатии нужной кнопки:
Populate().ContinueWith((_) =>
{
}, TaskScheduler.FromCurrentSynchronizationContext());
Этот способ работает и для webview2. Но меня интересует есть ли какая-нибудь альтернатива? Т.к. в приведенном мною примере заполняется лишь одно поле, но у меня есть парочка проектов, где таких полей больше 10. Их заполнение занимает некоторое время, и его хотелось бы сократить, если это возможно)