html - VBA 从网页上的下拉框中选择一个值
问题描述
在此处输入图像描述已更新我正在尝试使用 VBA 将我登录到安全网页,然后导航到我需要在搜索数据库之前从下拉框中选择一个值的网页。
我无法让它在下拉框中选择值的最后一部分起作用,我使用了下面的代码。
下拉框名称为 = District,文本值为“South”,South 的组合值为 HTML 代码中的 A。有人可以帮忙(阅读其他几篇文章但不理解)。
Sub database()
Dim IE As Object
Dim objElement As Object
Dim objCollection As Object
'add worksheet
Sheets.Add After:=ActiveSheet
'destination
Set destsheet = ActiveSheet
'use internet explorer
Set IE = CreateObject("InternetExplorer.application")
' with internet open, make this visable and go to webpage x, enter username
and passwork
With IE
.Visible = True
.Navigate ("URL")
While .Busy Or .ReadyState <> 4: DoEvents: Wend
'.Document.getElementsbyname("User name").Focus
.Document.getElementsByName("username")(0).Value = "username"
.Document.getElementsByName("password")(0).Value = "Pword"
While .Busy Or .ReadyState <> 4: DoEvents: Wend
Set objCollection = IE.Document.getElementsByTagName("input")
'log in (submit)
i = 0
While i < objCollection.Length
If objCollection(i).Type = "submit" And _
objCollection(i).Name = "" Then
' "Search" button is found
Set objElement = objCollection(i)
End If
i = i + 1
Wend
'upon logging in naviage to webpage...
objElement.Click
.Navigate ("URL 2")
While .Busy Or .ReadyState <> 4: DoEvents: Wend
Debug.Print .LocationURL
End With
With IE
IE.doc.getElementsByName("district").Item(A).Selected = True
End With
End Sub
解决方案
尝试
.document.querySelector("Select[name=District] option[value=A]").Selected = True
这Select[name=District] option[value=A]
是一个 CSS 选择器。它查找带有option
标签的元素,其属性为value
value = A
,父元素的标签为Select
,其属性name
为 value District
。document 的 querySelector 方法应用了选择器。
推荐阅读
- ajax - 推荐的方法是什么,用于动态加载部分视图,其中包含来自 db 的内容的下拉列表
- python - Python update nested list and dicts with values
- excel - Vba连接多列直到空白
- node.js - 即使在没有 --silence 标志的情况下运行也如何强制抑制节点错误
- spring - 在 subscribe 中使用 doOnEach、onError、onComplete 与在 Flux 上调用此类函数有什么不同?
- firewall - 如何阻止与 anydesk 的 Internet 连接并允许 LAN 连接?
- python - 有哪些方法可以从 python 中的 pdf 文件中提取没有任何网格的表格?
- r - 在 R Plotly 中将超链接插入到轴标题中
- javascript - 尝试从 php 脚本中检索回显数据时,getJSON 不起作用
- c - 字符串数组只要输入