Как загрузить файл с помощью watin без всплывающих диалоговых окон

#c# #asp.net #watin

#c# #asp.net #ватин

Вопрос:

Мне нужно загружать файлы с помощью WatiN, и мне нужно это делать, когда Windows заблокирована, это означает, что я не могу использовать DownloadIeFile, который откроет путь вставки всплывающего окна SaveAs и сохранит его, когда Windows открыта, но мне нужно обработать это сохранение без сохранения диалоговых окон.

Кто-нибудь знает, как это сделать?

Мой код

   using (var browser = new IE("https://login.bank.com"))
            {
                try
                {
                    step = "1";
                    #region Login
                    browser.WaitForComplete();
                    try
                    {
                        //  browser.Visible = false;
                        browser.TextField(Find.ById("userID")).TypeText(strUser);
                        Thread.Sleep(1000);
                        browser.TextField(Find.ById("numID")).Value = strUserId;
                        browser.TextField(Find.ById("userPassword")).TypeText(strPass);
                        linkExist = browser.Image(Find.ById("inputSend")).Exists;
                        if (linkExist) browser.Image(Find.ById("inputSend")).Click();
                        browser.WaitForComplete();
                        linkExist = false;
                    }
                    catch (Exception ex)
                    {
                        successful = false;

                    }
                    browser.WaitForComplete();

//this wil open save dialog
 browser.GoToNoWait(DownloadLink);

//this will emulate clicks and press SaveAs that insert path and save it
 DownloadIeFile(browser, path);
//All works,BUT only if windows is open when it is on lock it dont hanlde it

}
 

Ответ №1:

Watin не будет работать, когда машина заблокирована. Поскольку он использует Microsoft.mshtml и Interop.Двоичные ссылки SHDocVw. Эти двоичные файлы являются COM-компонентами и нуждаются в интерактивном пользовательском интерфейсе. Для примера вы можете попробовать войти в систему вместо загрузки. Запустите тест и заблокируйте устройство, а затем разблокируйте. Обратите внимание на результат, он не будет выполнен с ошибкой, подобной COM exception….