Автоматизация VBA не может получить innerText (innerHTML, значение)

Итак, я получил внутренний текст много раз. На этот раз это просто не работает. Перепробовал много альтернатив.

Прежде всего я использую Selenium на VBA для использования chromedriver. Исходный веб-сайт "[ http://www.fazenda.df.gov.br/area.cfm?id_area=1536]". Этот веб-сайт работает на фрейме Iframe. После получаса, пытаясь получить от него внутренний текст, я понял, что ссылка в его коде работает так же хорошо: "[ http://publica.agnet.fazenda.df.gov.br/FichaImovel/". Этот последний, кажется, действует на некий вызов "Angular".

Меню с нужным мне внутренним текстом является выпадающим. В качестве фиктивного значения можно использовать 50868748. Сгенерированный им выпадающий текст состоит из 15 строк и одной таблицы. Информация, которая мне нужна, находится в 15-й строке, "Nome do Responsável", или в столбце 2, строка 2 таблицы.

Мне удалось разместить код и создать выпадающий список, но мне не удалось получить внутренний текст.

Вот мой код:

Dim iptu As String

Dim driver As New ChromeDriver

With driver


.Start 
iptu = 50868748 'dummy
.Get "http://publica.agnet.fazenda.df.gov.br/FichaImovel/#/FichaCadastral"

.FindElementById("inscricaoImovel").Clear
.FindElementById("inscricaoImovel").SendKeys iptu
.FindElementsById("btnCadastro")(2).Click

.Wait (300)

пока здесь все отлично работает

Dim label As Object
Dim name As String


Set label = .FindElementsByClass("ng-binding")(91)
'as you can see, i end up using this class(91) to get the value on the table, but i can get from the 15th line too


name = label.getAttribute("innerText") 'Error is here

Я пробовал.innerText, .innerHTML и другие. Ошибка всегда "объект не принимает свойство или метод" Ошибка 438.

end with

Драйвер Chrome обновлен. Кроме того, источник страницы не содержит нужную мне информацию.

Кто-нибудь может мне помочь?

2 ответа

Решение

Чтобы получить InnerText элемента, необходимо вызвать метод Text.

Set label = .FindElementsByClass("ng-binding")(91)

name = label.Text

Чтобы получить внутренний HTML,

name = label.Attribute("innerHTML")

Иногда я обнаруживаю, что мне нужно выполнить javascript, чтобы получить то, что мне нужно. Ты можешь попробовать

name=driver.ExecuteScript("document.getElementsByClassName('ng-binding')[91].innerText;")
Другие вопросы по тегам