![]() |
|
Программная обработка поля html документа - тег input | ☑ | ||
---|---|---|---|---|
0
Mashinist
06.06.19
✎
20:21
|
Значит в поле html открываю сайт и там есть выбор файла
Конструкция там примерно такая <input _ngcontent-c8="" class="form-control ng-pristine ng-valid ng-touched" readonly="readonly"> <button _ngcontent-c8="" class="btn btn-default log_button" type="button">Выбрать</button> <input _ngcontent-c8="" id="PKeyFileInput" style="visibility: hidden" type="file"> на сайте нажимаешь на кнопку Выбрать и открывается выбор файла. Выбираешь и на форме видно в первом input только имя без пути а данные о файле, как я понял, пишутся во второй input, который скрыт от глаз вопрос: как мне программно заполнить этот самый объект? в коде я его получаю Инпут = ЭтаФорма.ПодчиненныеЭлементы.HTML.Документ.getElementById("PKeyFileInput"); у инпут есть коллекция Инпут.files, но она пустая. Опять же, на сколько я понимаю, нужно туда добавить элемент и как-то данные о файле... |
|||
1
Garykom
гуру
06.06.19
✎
20:33
|
Никак, тебе надо post сделать
Ну или курить api от того движка браузера который используешь |
|||
2
Garykom
гуру
06.06.19
✎
20:34
|
||||
3
Mashinist
06.06.19
✎
20:40
|
ну браузер тот который в 1С 8.3.14.1565
задача по сути весьма банальна я знаю где находится нужный файл и как бы хотелось не выбирать его каждый раз руками, а сразу программно заполнить и все... как-то пока обидно получается :( |
|||
4
Garykom
гуру
06.06.19
✎
20:42
|
(3) 1565 это уже который с webkit вместо ослика?
Тебе же ответили, никак по соображениям безопасности, иначе любой сайт на который ты зашел с js смог бы спереть у тебя с компа любые файлы |
|||
5
Garykom
гуру
06.06.19
✎
20:43
|
Тебе просто надо сымулировать POST запрос который форма делает, с прицепленным файлом.
|
|||
6
Garykom
гуру
06.06.19
✎
20:44
|
У тебя есть кнопочка submit для формы вот выполнить вручную действия которые происходят при этом
|
|||
7
Garykom
гуру
06.06.19
✎
20:48
|
Берешь все куки и заголовки, засовываешь в HTTPСоединение и ОтправитьДляОбработки.
Результат засовываешь обратно в ПолеHTML |
|||
8
Mashinist
06.06.19
✎
21:30
|
(6) да. есть такая кнопочка
<button _ngcontent-c8="" class="btn btn-default log_button" style="max-width: 80px;" type="button"><!----><!----><span _ngcontent-c8="" class="ng-star-inserted">Прочитать</span><!----></button> как-то но по этой кнопке выполняет действие, но страница не перегружается и это не POST, потому как нету <FORM.../FORM> видимо выполняется какой-то js, но я не могу понять какой... |
|||
9
Юрий Лазаренко
07.06.19
✎
00:16
|
(8) Запрос может выполняться js-ом. Открой страницу в Хроме, запусти консоль (F12), открой закладку "Network", нажми кнопку. В консоли появятся все запросы к серверу. Тебе скорее всего нужны запросы с типом "xhr". В колонке "Initiator" будет указано, какой скрипт и в какой строке вызвал запрос. Надо посмотреть на эти скрипты, тогда станет понятно, куда копать дальше.
|
|||
10
Сияющий в темноте
07.06.19
✎
08:50
|
если винда,то берем wscript.shell и через sendkey пишем в поле input имя файла,и даже потом можно кнопочку нажать для отправки,и какой браузер,не важно,для него это будет ввод пользователя.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |