Я пытаюсь извлечь данные с веб-страниц с помощью VBA в Excel. Мне удалось автоматизировать процесс входа в систему, который переводит меня на новую страницу с формой поиска. В этой форме есть поле ввода для «Значение поиска» и ряд переключателей, которые определяют переменную для выполнения поиска, например. Идентификационный номер, Имя. Я пытаюсь автоматизировать заполнение поля ввода и выбор одного из переключателей, а затем отправку формы.
Код, который я использовал для входа в систему, похоже, не работает на следующей странице, где мне нужно выполнить поиск. Это HTML со страницы поиска, содержащей поле ввода:
<table width="100%">
<tr>
<td style="font-weight: bold; width:10%;" nowrap="nowrap">Search Value</td>
<td style="width: 15%; text-align: left;">
<input name="txtSearch" type="text" id="txtSearch" onkeyup="return txtSearch_onkeyup()" style="background-color:White;border-color:#222244;border-width:1px;border-style:Solid;height:20px;width:125px;" />
Который я пытаюсь заполнить, используя:
ieDoc.Document.getElementsByName("txtSearch")(0).Value = "Test String"
Или:
ieDoc.Document.all.txtSearch.Value = "Test String"
Или
ieDoc.Document.getElementByID("txtSearch").Value = "Test String"
... все дают мне ту же ошибку, определенную объектом.
Я подтвердил, что ieDo c ссылается на правильную страницу после входа в систему (путем проверки заголовок в ближайшем окне) и попытался убедиться, что это не проблема синхронизации с загрузкой страницы.
Я знаю, что методы HTML в vba, как правило, темпераментны, но у меня кончились идеи . Есть ли другой способ получить доступ к полю ввода на этой странице?