html - 不显示下拉列表中的表单帖子选择
问题描述
我的任务是自动填写网络表单。我能够打开表格并能够从下拉列表中选择选项并能够填写表格。下拉菜单有多个选项,并根据下拉菜单中的选择显示表单。我可以通过 VBA 编码从下拉列表中选择选项,但表单没有扩展。虽然它是通过鼠标从下拉菜单中选择来扩展的。
我写了下面的代码:
Sub FilltheForm1()
Dim IE As SHDocVw.InternetExplorer
Dim IE2 As SHDocVw.InternetExplorer
Set IE = New InternetExplorer
Set IE2 = New InternetExplorer
IE.Visible = True
IE.navigate "My URL"
Do While IE.readyState <> READYSTATE_COMPLETE
Loop
Dim Doc As MSHTML.HTMLDocument
Set Doc = IE.document
Doc.getElementsByTagName("select").Item("userType").Value = "SERVICE_PROVIDER"
Doc.getElementsByTagName("Input").Item("firstName").Value = "A"
Doc.getElementsByTagName("Input").Item("middleInitial").Value = "A"
Doc.getElementsByTagName("Input").Item("lastName").Value = "A"
Doc.getElementsByTagName("select").Item("company").Value = "HCL"
Doc.getElementsByTagName("Input").Item("companyEmail").Value = "A"
Doc.getElementsByTagName("Input").Item("address").Value = "A"
Doc.getElementsByTagName("Input").Item("city").Value = "A"
Doc.getElementsByTagName("Input").Item("stateProvince").Value = "A"
Doc.getElementsByTagName("Input").Item("zipPostalCode").Value = "A"
Doc.getElementsByTagName("select").Item("country").Value = "INDIA"
Doc.getElementsByTagName("Input").Item("phone").Value = "A"
Doc.getElementsByTagName("textarea").Item("reasonForRequestingAccess").Value = "A"
End Sub
网页表单的 HTML 代码:
<tr>
<td class="textAlignRight">
<p class="pBold">User Type:<sup>*</sup></p></td>
<td colspan="2" align="left"> <select name='userType' class="selectDropDown" onChange=refreshPage()>
<option value= 'PLEASE SELECT USER TYPE' selected ="selected">
解决方案
您可能需要触发 OnChange 事件来模拟用户交互。
ie.document.querySelector("[name='userType']").FireEvent "onchange"
推荐阅读
- css - Angular Material:如何在 TS 中设置具有不同背景颜色的每个 mat-horizontal-stepper 步进器图标
- javascript - 在javascript中循环对象,为什么调用什么“键”无关紧要?
- c - 程序中的循环“<”与“<=”打印格式问题
- python - 带解码器的类似哈希的字符串缩短器
- opencv - OpenCV:灰度图像的图像分割
- r - 根据来自另一个数据帧的两个条件子集一个数据帧
- flutter - 尝试在 VS Code/Flutter 上运行时出现调试错误
- python - 如何从特定列中获取数据并将其分开?
- python - Python Pandas 打印列标题时出错
- mysql - 插入前创建触发器