#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….