因此,我已经获得很多内文。这次,它根本不起作用。尝试了多种选择。
首先
我在VBA上使用Selenium以使用chromedriver。
来源网站是“ [{perldoc perlxs
”。此网站在iframe上运行。在尝试从中获取内部文本半小时后,我发现其代码中的链接同样有效:“ [http://www.fazenda.df.gov.br/area.cfm?id_area=1536]”。这最后一个似乎可以通过“ Angular”调用。
我需要带有内部文本的菜单是一个下拉菜单。您可以使用50868748作为虚拟值。它生成的下拉文本由15行和一个表组成。我需要的信息在表格的第15行“ Nome doResponsá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驱动程序是最新的。另外,页面源不包含我需要的信息。
有人可以帮我吗?
答案 0 :(得分:0)
要获取元素的InnerText,您需要调用Text方法
Set label = .FindElementsByClass("ng-binding")(91)
name = label.Text
要获取内部HTML
name = label.Attribute("innerHTML")
答案 1 :(得分:0)
有时候我发现我必须执行javascript才能得到我想要的东西。你可以尝试
name=driver.ExecuteScript("document.getElementsByClassName('ng-binding')[91].innerText;")