2017-02-01 3 views
0

tl; dr: Как отправить запрос POST в VBA с помощью XMLHttpRequest в Internet Explorer?VBA отправить XMLHttpRequest из Internet Explorer


Я про автоматизацию использования страницы в Интернете. Идея состоит в том, чтобы начать с Excel, чтобы собрать некоторые данные на листе, а затем перенести эти данные на интернет-страницу, одновременно нажать несколько кнопок, а затем работать вручную.

Я записал весь процесс, когда он запускается вручную с помощью инструментов разработчика F12. Собрав данные в поля страницы в сети Интернет, некоторые события Javascript иметь место, которые сгореть запрос POST через XMLHttpRequest: enter image description here

Теперь, тиражирование процедуру, описанную выше в VBA (с помощью getElementById, .click(), .value= и тому например), похоже, что соответствующие события не запускаются: на сервер не отправляется такой запрос POST, как показано выше, и никаких дополнительных масок не открывается. Вот почему я хотел опустить подход к заполнению текстового поля и просто щелкнуть запрос POST.

Как это сделать из VBA с помощью Internet Explorer?

Отказ от ответственности: Я знаю, как отправить запрос POST, используя MSXML2.serverXMLHTTP, который описан сотни раз через Интернет. Тем не менее, это всегда либо - либо: либо использовать Internet Explorer, либо MSXML2.serverXMLHTTP. Однако мне нужен запрос в Internet Explorer.

+2

Невозможно ответить на этот вопрос, не видя фактического URL-адреса - есть много потенциальных событий, на которые может реагировать код на вашей HTML-странице (размытие, нажатие клавиши/вверх, фокус и т. Д.) –

+0

@TimWilliams: (i) можно ли понять происходящие события умным или систематическим образом? (- без проб и ошибок с записью) (ii) в любом случае, я не хочу использовать способ воспроизведения событий. Я хочу напрямую запускать почтовый запрос с использованием XMLHttpRequest в Internet Explorer, и это из VBA ... так, чтобы сервер видел тот же результат, что и в других случаях, вызванный событиями Javascript. – davidhigh

+0

Да, возможно, это возможно, но вам нужно будет изучить страницу и выяснить, что там происходит. –

ответ

0

Эти ссылки выглядят многообещающими | VB5 | C# | Navigate method, 4th argument | Another VB example using StrConv for byte array conversion | Похоже, вы просто используете метод Navigate и просто данные, упакованные в байтовый массив для четвертого аргумента. Одна из приведенных ссылок устарела, но новая ссылка выглядит очень похожей, поэтому я думаю, что интерфейс не сильно изменился.

Упорядочить по электронной почте.