#excel #vba
Вопрос:
чего я пытаюсь добиться с помощью Excel VBA, так это:
- откройте веб-страницу и выполните поиск определенной формы и ввода
- заполните ввод и отправьте форму через тег ссылки
- найдите новую веб-страницу, созданную с помощью этой отправленной формы.
Задачи 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 за то, что нашли время просветить меня.