rediffusion
11/10/2017 - 11:41 AM

SetFileUploadPolicy()

//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 (смотри закомментированную строку выше)