【问题标题】:Not showing the form post selection from drop down List不显示下拉列表中的表单帖子选择
【发布时间】:2019-07-18 12:20:55
【问题描述】:

我的任务是自动填写网络表单。我能够打开表格并能够从下拉列表中选择选项并能够填写表格。下拉菜单有多个选项,并根据下拉菜单中的选择显示表单。我可以通过 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">

【问题讨论】:

  • 哪个选择失败了?试试 ie.document.querySelector("[name='userType']").FireEvent "onchange"
  • 没有。请问不工作是什么意思?是否有错误消息或根本没有任何反应?
  • 感谢您的解决。现在我正在使用您上面的代码根据选择获取表单。
  • 介意如果我作为答案发布,如果解决了,那么您可以考虑接受。看看它如何以及为什么有用:stackoverflow.com/help/someone-answers

标签: html vba web screen-scraping


【解决方案1】:

您可能需要触发 OnChange 事件来模拟用户交互。

ie.document.querySelector("[name='userType']").FireEvent "onchange"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-25
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 2014-02-15
    • 1970-01-01
    相关资源
    最近更新 更多