如何从下拉选项中选择一个项目(下拉列表在表结构中)
Sub Test()
Dim ie As Object
Set ie = CreateObject("InternetExplorer.Application")
With ie
.Visible = True
.navigate ("http://www.handelsregisterbekanntmachungen.de/?aktion=suche#Ergebnis")
Do: DoEvents: Loop Until .readyState = 4
'.document.getElementsByClassName("vt").Value = "1"
End With
End Sub
检查元素时,我发现 name 属性 =“vt” ..
感谢先进的帮助
最佳答案
更通用的是使用 CSS 选择器。
从目标元素收集所有选项并为所需选项编制索引:
例如,对于名称为 vt 的日期下拉列表,您可以使用 [name=vt] 选项
第一个选择器匹配目标父元素中具有 name
的所有选项标签元素。值为 vt
的属性.
选择器组合是一个后代组合器,其中包括一个前导属性选择器,用于定位当天的父下拉列表。由于需要多个元素(所有选项),因此 querySelectorAll 方法用于返回一个节点列表,该节点列表被索引以将特定选项设置为选中:
Set list = .querySelectorAll("[name=vt] option") '<==nodeList
list.item(1).Selected = True
最后一行针对下拉菜单的第 1 天选项。
CSS 查询结果示例:
直接选择一个选项
再次使用从
Datum der Bekanntmachung
下拉的日期,您可以使用 CSS 选择器[name=vt] option[value='2']
这是另一个组合两个属性选择器的后代组合器。父元素有
name
vt
的属性,并且目标单数选项子元素具有 option
标签和属性 value
值为 2
.这针对下拉菜单的第 2 天选项。VBA:
Option Explicit
Public Sub MakeSelections()
Dim IE As New InternetExplorer
With IE
.Visible = True
.navigate "http://www.handelsregisterbekanntmachungen.de/?aktion=suche#Ergebnis"
While .Busy Or .readyState < 4: DoEvents: Wend
Dim list As Object
With .document
Set list = .querySelectorAll("[name=vt] option")
list.item(1).Selected = True '<==select first from list
.querySelector("[name=vt] option[value='2']").Selected = True '<Select second direct
End With
Stop '<== Delete me later
.Quit
End With
End Sub
关于excel - 从下拉列表中选择一个选项 excel vba 抓取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48736954/