VBA Ссылка на диалоговое окно с уже открытым веб-файлом - PullRequest
0 голосов
/ 23 января 2019

У меня есть сайт внутренней сети компании, который открывает диалоговое окно файла (при щелчке по полю ввода), чтобы пользователь мог выбрать файл для загрузки в нашу основную систему.Нажатие «ОК» после выбора файла закрывает диалоговое окно файла и помещает расположение файлов в поле ввода.Я искал ветку 35411826, которая выглядит как хороший ответ для некоторых приложений - но это не решает мою отдельную проблему.Наша система не просто принимает загруженный файл.Он генерирует коды для загруженного файла и вводит его в несколько подсистем.

Я бы хотел автоматизировать это, управляя диалоговым окном уже открытого файла.Я попытался заполнить поле ввода местоположением файла, но это не работает.Необходимо щелкнуть окно ввода, чтобы открыть диалоговое окно файла, что я могу сделать с помощью команды .click.

Вот HTML-код элемента:

<input id="fileToUploadNewDoc" type="file" size="50">

Я представляюТип "файл" инициирует элемент, чтобы открыть диалоговое окно файла при нажатии.Я не знаю.Но это то, что происходит при нажатии на поле ввода.

Как найти диалоговое окно открытого файла и установить для него переменную объекта, которая позволила бы мне выбрать файл и нажать кнопку «ОК», чтобы заполнить полеэлемент с расположением файла?

Обновление 01-24-2019 : меня попросили предоставить дополнительную кодировку / объяснение.

Кратко:

Iиметь всплывающую веб-страницу с переменной IE2.На этой странице есть поле ввода HTML с идентификатором «fileToUploadNewDoc». Вот HTML-код документа:

<div class="span12">
    <div class="control-group">
        <label class="control-label" for="selectDocumentType">File to Upload</label>
        <input id="fileToUploadNewDoc" type="file" size="50">
    </div>
</div>

Вот изображение поля ввода: Image of Input Box on Web Page

Вы видите, что кнопка «Обзор» была добавлена ​​в поле ввода.Это не настоящая кнопка, но помещается там с помощью javascript, css или чего-то ещеЕсли щелкнуть в любом месте поля ввода, откроется окно просмотра файлового диалога.

Как я уже говорил ранее, я попытался обойти поле «Обзор», заполнив поле ввода непосредственно местоположением файла, как показано ниже.:

IE2.document.getElementById("fileToUploadNewDoc").Value = "C:\Users\nunYa\Documents\My Scans\Current Scans\PSA_ABC-54596900.pdf"

Но это не помещает местоположение в поле ввода.На самом деле ничего не происходит.

Я тоже пробовал:

IE2.document.parentWindow.execScript "$('#fileToUploadNewDoc').val('C:\Users\nunYa\Documents\My Scans\Current Scans\PSA_ABC-54596900.pdf').trigger('change')"

Но безрезультатно.Это также не работает, чтобы поместить местоположение документа в поле ввода.

Единственный способ взаимодействия с этим полем ввода (насколько я знаю) - щелкнуть по нему, что приводит к открытию диалогового окна файла.чтобы пользователь выбирал папку и местоположение файла для помещения в поле ввода при нажатии кнопки «ОК» в диалоговом окне файла.В своем простом уме я думаю, что я должен назначить открытое диалоговое окно файла для переменной объекта, чтобы программно выбрать файл и нажать «ОК» в диалоговом окне файла.

Обычно, когда программист открывает диалоговое окно файла, которое он может назначитьэто к объектной переменной.(Есть тысячи примеров этого в Интернете.) Это дает программисту возможность управлять диалоговым окном файла.т.е. выберите папки и файлы и закройте диалоговое окно filedial.

В этом случае веб-сайт открывает диалоговое окно filedial, а не я, программист, поэтому я не установил для него переменную объекта и поэтому могуне контролировать это.Мне нужно иметь возможность найти диалоговое окно filedial и установить его в переменную объекта, чтобы управлять им.Я не знаю, как объяснить это проще.Извините, если это сбивает с толку.

Я также проверил тему 35411826 об управлении диалоговыми окнами.Но ответ этой ветки не в том, чтобы управлять диалоговым окном, а в том, как объяснить, как безвредно загрузить файл прямо в папку какого-либо веб-сайта.Как я уже объяснял ранее, наша система работы не безобидна.Когда этот файл загружен, серверная сторона обновляет десятки других систем и создает коды и ключи во всем массиве различных систем.Загрузка файла в какую-либо папку на сервере абсолютно ничего не даст.

Разобрав его, это так просто, как я могу задать вопрос: как найти уже открытое диалоговое окно filedog и установить для него переменную объекта в VBA, чтобы я мог программно выбрать папку и файл и затем нажать " ХОРОШО." Я чувствую, что название моего вопроса объясняет это, но понимаю, почему это может сбивать с толку. Как объясняет это мелочное объяснение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...