Excel VBA нажмите на ссылку на веб — странице- доступ запрещен

#excel #vba

Вопрос:

чего я пытаюсь добиться с помощью Excel VBA, так это:

  1. откройте веб-страницу и выполните поиск определенной формы и ввода
  2. заполните ввод и отправьте форму через тег ссылки
  3. найдите новую веб-страницу, созданную с помощью этой отправленной формы.

Задачи 1 выполнены, и я пытаюсь понять, почему при нажатии на ссылку я получаю сообщение об ошибке «ОТКАЗАНО в ДОСТУПЕ -2147024891 ошибка».

Мой код до сих пор для 1 и 2 :

 Dim http As New XMLHTTP60 Dim html As New HTMLDocument Dim cp12Element As HTMLInputTextElement Dim formElement As HTMLFormElement Dim response As String  With http  .Open "GET", "http://me.intra-dmu-13.dv.mes.reseau.intra/conformite/SoutienConformite/AcafWeb/AdrsGDI.asp?CP12=" amp; cp12, False  .send    If .Status lt;gt; 200 Then  MsgBox "Error, the file number entered is invalid.", vbCritical  Exit Sub  End If    response = StrConv(.responseBody, vbUnicode) End With  html.body.innerHTML = response html.getElementsByName("CP12").Item(0).Value = "AAAA010101A1" html.getElementsByClassName("lien").Item(0).Click lt;--- ERROR ' html.getElementsByName("fAdrs").Item(0).submit lt;--- generate the same error  

Имя формы — «fAdrs», и есть только 1 вход «CP12». Метод формы-POST.

HTML-код страницы :

 lt;form name="fAdrs" method="post" action="AdrsGDI.asp?CP12=XXXX010101A1amp;Rech=Y"gt;  lt;input type=hidden name="Rech" value="1"gt;   lt;table ID="Table3"gt;   lt;trgt;  lt;td class="cell-login"gt;  lt;table class="NomChamps" ID="Table5"gt;  lt;trgt;  lt;tdgt;  lt;table class="NomChamps" ID="Table5"gt;  lt;trgt;  lt;tdgt;CP12 :lt;/tdgt;  lt;tdgt;  lt;input class="champs" type="text" name="CP12" value=""gt;  lt;/tdgt;  lt;/trgt;  lt;/tablegt;  lt;/tdgt;  lt;/trgt;  lt;/tablegt;  lt;/tdgt;  lt;/trgt;  lt;trgt;  lt;table class="NomChamps" ID="Table5"gt;   lt;tr height="15"gt;  lt;td class="cell-login"gt;  lt;a class="lien" href="javascript:DoSubmit();"gt;SEARCHlt;/agt;   lt;/tdgt;  lt;/trgt;  lt;/tablegt;  lt;/trgt; lt;/tablegt;   

Функция DoSubmit просто вызывает функцию проверки, а затем отправляет форму.

Любая помощь будет с радостью оценена.

Комментарии:

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

2. В этом есть смысл. Спасибо @QHarr за то, что нашли время просветить меня.