Выбор радиокнопки веб-страницы - PullRequest
0 голосов
/ 09 мая 2020

Я пытаюсь извлечь данные с веб-страниц с помощью 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, как правило, темпераментны, но у меня кончились идеи . Есть ли другой способ получить доступ к полю ввода на этой странице?

1 Ответ

1 голос
/ 09 мая 2020

Успех!

Я пытался сослаться на элемент в подкадре внутри объекта IE, к которому я получил доступ с помощью:

ieDoc.Document.frames(0).Document.all.txtSearch.Value = "Hello!"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...