单击HTMLInputElement,然后单击HTMLOptionElement
我正在尝试编写vba代码来填写web表单并单击按钮。我在页面上循环使用各种单击HTMLInputElement,然后单击HTMLOptionElement,html,vba,syntax,option,Html,Vba,Syntax,Option,我正在尝试编写vba代码来填写web表单并单击按钮。我在页面上循环使用各种选项标记来选择我想要的。当我到达它时,我想选择它,但我不确定它的语法 Dim htmlO As HTMLOptionElement For Each htmlO In Object.getElementByTagName("option") If Trim(htmlO.value) = "INS" Then htmlO.???? (click? select?) Exit For
选项
标记来选择我想要的。当我到达它时,我想选择它,但我不确定它的语法
Dim htmlO As HTMLOptionElement
For Each htmlO In Object.getElementByTagName("option")
If Trim(htmlO.value) = "INS" Then
htmlO.???? (click? select?)
Exit For
End If
Next
以下是网页中的HTML:
<select gtbfieldid="40" id="menu" name="pv_choice">
<option selected="selected" value="ZZZ">Choose Menu Option
</option><option value="BL_COMP">Blanket Companies
</option><option value="CARR_SEARCH">Carrier Search
</option><option value="PASSWORD">Change Password
</option><option value="FED_REG">FMCSA Register
</option><option value="FEEDBACK">Feedback
</option><option value="HOME">Home Page
</option><option value="INS">Insurance Filing
</option><option value="OOS_LIST">Out Of Service Carriers
</option></select>
选择菜单选项
毛毯公司
载波搜索
修改密码
FMCSA寄存器
反馈
主页
保险备案
停用承运人
我想选择选项“INS”。我没有使用VBA,因此我提前表示歉意,但假设它使用与我熟悉的其他语言相同的DOM结构,请尝试:
htmlO.selected= "selected"
这就是我用javascript实现这一点的方法:)
最后起作用的是 将htmlO变暗为HTMLSELECT元素
设置htmlS=objdoc.getElementById(“菜单”)
htmlS.selectedIndex=7
我必须参考整个菜单并选择要选择的菜单,而不是选择单个选项。CSS选择器:
Dim StrFindText as string
Dim htmlSelect As HTMLSelectElement
Dim htmlItemOption As IHTMLOptionElement
Set htmlSelect = Object.getElementById("menu")
StrFindText = "INS"
For i = 0 To htmlSelect.options.length - 1
htmlItemOption = htmlSelect.options(i)
' UCase(htmlItemOption.text) = UCase(StrFindText) ' if find text options
If UCase(htmlItemOption.value) = UCase(StrFindText) Then
htmlItemOption.selected = True
Exit For
End If
Next i
这里有一个更简单的方法。使用选项[value='INS']
的CSS选择器。
这表示选择带有选项
标记的元素,该标记具有属性值
,其值为'INS'
CSS查询:
VBA: 通过
文档
的方法应用
objdoc.querySelector("option[value='INS']").Click
或
谢谢你的回答…但它不起作用。当我执行htmlO.check时,菜单选项没有被选中。对不起,我是个傻瓜,我以为你在使用复选框。Try selected=“selected”已在我的原始响应中更新。我也尝试了htmlO.select,但它不起作用…谢谢:)
objdoc.querySelector("option[value='INS']").Selected = True