//Instance представляет окно браузера в ZennoPoster
//Ссылка на онлайн-документацию по объектной модели для всех версий ZennoPoster: //http://zennolab.com/wiki/en:zennoposter:macros-documentation
//Ссылка на онлайн-документацию по объектной модели версии 5.11.0.0: //https://help.zennolab.com/en/v5/zennoposter/5.11.0.0/
//public void SetFileUploadPolicy
//Предназначение метода: Установка политики для окон отправки файла на сервер (действия с окном выбора файла).
//Параметры:
// string answer - Ответ для окна выбора файла (надпись на кнопке, по которой нужно нажать после выбора файла). Этот параметр может принимать следующие значения: "ok" или "cancel"
// string value - Значение ответа (value of the answer). Подразумевается путь к файлу, который будет загружен.
// string id - id проекта. Значение по умолчанию - пустая строка.
//Демонстрация:
//подготовка (переходим на поиск картинок гугла и скачиваем логотип во вспомогательную папку
Tab Tab1 = instance.ActiveTab;
Tab1.Navigate("https://www.google.ru/imghp?hl=ru");
Tab1.WaitDownloading();
File.WriteAllBytes(project.Directory + @"\вспомогательные файлы\google_logo.png", Convert.FromBase64String(Tab1.FindElementByXPath("//div[@id='hplogo']", 0).DrawToBitmap(false)));
//переходим в поиск по файлу
Tab1.FindElementByXPath("//a[contains(@aria-label, 'по картинке') or contains(@aria-label, 'by image')]", 0).Click();
Thread.Sleep(500);
Tab1.FindElementByXPath("//div[contains(@alt, 'в справке') or contains(@alt, 'Search help')]/following::a", 0).Click();
//устанавливаем политику загрузки (upload) файлов
instance.SetFileUploadPolicy("ok", "");
//обычно второй параметр в SetFileUploadPolicy указывают как "", а файл выбирают при помощи закомментированной команды ниже
instance.SetFilesForUpload(project.Directory + @"\вспомогательные файлы\google_logo.png"); //выбираем файл для загрузки на сервера (сохранённый ранее логотип)
//кликаем по элементу, открывающему диалог выбора файла
Tab1.FindElementByXPath("//input[@name='encoded_image']", 0).RiseEvent("click", "Middle");
//Примечания:
// 1. Обычно параметр value метода SetFileUploadPolicy указывают пустым - "" - а файл для загрузки устанавливают через свойство instance.SetFilesForUpload (смотри закомментированную строку выше)