VBA HTML对象Internet Explorer自动化

VBA HTML对象Internet Explorer自动化,html,excel,vba,dom,xpath,Html,Excel,Vba,Dom,Xpath,如何从下拉菜单中选择选项并更新网页。 代码: 然后,我导航到一个URL,使用html id获取下拉菜单,并将value=my所需的值 我成功地得到了这个选项。但是,网站不更新吗?e、 g.填写其他字段 我认为需要运行一些javascript。 如何使用VBA修复此问题 下拉菜单字段的源代码: <div id="ctl00_MainContent_CreateWebForm__SubjectComboBox_ComboBox" class="Invalid RadComboBox RadCo

如何从下拉菜单中选择选项并更新网页。 代码:

然后,我导航到一个URL,使用html id获取下拉菜单,并将value=my所需的值

我成功地得到了这个选项。但是,网站不更新吗?e、 g.填写其他字段

我认为需要运行一些javascript。 如何使用VBA修复此问题

下拉菜单字段的源代码:

<div id="ctl00_MainContent_CreateWebForm__SubjectComboBox_ComboBox" class="Invalid RadComboBox RadComboBox_Telerik SearchComboBox" style="width:206px;white-space:normal;">
    <table summary="combobox" style="border-width:0;border-collapse:collapse;width:100%" class="rcbFocused rcbExpanded">
        <tbody><tr class="rcbReadOnly">
            <td class="rcbInputCell rcbInputCellLeft" style="width:100%;"><input name="ctl00$MainContent$CreateWebForm_$SubjectComboBox$ComboBox" type="text" class="rcbInput radPreventDecorate" id="ctl00_MainContent_CreateWebForm__SubjectComboBox_ComboBox_Input" value="Vælg" readonly="readonly" accesskey="s" autocomplete="off"></td><td class="rcbArrowCell rcbArrowCellRight"><a id="ctl00_MainContent_CreateWebForm__SubjectComboBox_ComboBox_Arrow" style="overflow: hidden;display: block;position: relative;outline: none;">select</a></td>
        </tr>
    </tbody></table><input id="ctl00_MainContent_CreateWebForm__SubjectComboBox_ComboBox_ClientState" name="ctl00_MainContent_CreateWebForm__SubjectComboBox_ComboBox_ClientState" type="hidden" autocomplete="off">
</div>

Source code for dropdown options:

    <div id="ctl00_MainContent_CreateWebForm__SubjectComboBox_ComboBox_DropDown" class="RadComboBoxDropDown RadComboBoxDropDown_Telerik " style="width: 204px; display: block; top: 0px; visibility: visible; transition: none 0s ease 0s;">
        <div class="rcbScroll rcbWidth" style="height: 126px;">
    <ul class="rcbList"><li class="rcbHovered">Forespørgsel til Energinet</li>
    <li class="rcbItem">Måledata</li><li class="rcbItem">Målepunkt eller ad hoc spørgsmål</li>
    <li class="rcbItem">Orientering til alle</li>
    <li class="rcbItem">Priser</li><li class="rcbItem">Pristilknytninger</li></ul></div></div>

选择
下拉选项的源代码:
能源网之前的预测
  • Måledata
  • Målepenkt eller特设spårgsmål
  • 定向直到所有
  • 普里斯特
  • Pristilknytninger

  • 适用于任何遇到此问题的人。我通过查找getelementbyid方法的focus属性解决了这个问题。像这样:

  • 首先,我在列表上循环查找我的选项。我使用tagname和classname并匹配innertext属性=myoption(仅当该字段不允许您输入文本时才有必要这样做)然后当匹配发生时,执行.focus后跟.单击该对象

  • 否则,只需使用焦点,然后单击字段上的属性,然后输入您的选项:

    HTMLDoc.getElementById("xyz").focus
    HTMLDoc.getElementById("xyz").click
    HTMLDoc.getElementById("xyz").Value = myoption
    
  • 这将自动刷新html页面


    这解决了我的问题。

    你能发布HTML内容并提供更多细节吗?分解代码并调试。例如,
    HTMLDoc.getElementById(“xyz”)
    是否返回任何内容?Yes@Nathan_Sav。它在下拉字段中正确返回下拉选项。但是网页不会更新。我认为下拉列表需要更改selecteditem,如果看不到您试图获取的html,很难在顶部找到一些按钮,您可以在其中更改以显示代码格式
    <div id="ctl00_MainContent_CreateWebForm__SubjectComboBox_ComboBox" class="Invalid RadComboBox RadComboBox_Telerik SearchComboBox" style="width:206px;white-space:normal;">
        <table summary="combobox" style="border-width:0;border-collapse:collapse;width:100%" class="rcbFocused rcbExpanded">
            <tbody><tr class="rcbReadOnly">
                <td class="rcbInputCell rcbInputCellLeft" style="width:100%;"><input name="ctl00$MainContent$CreateWebForm_$SubjectComboBox$ComboBox" type="text" class="rcbInput radPreventDecorate" id="ctl00_MainContent_CreateWebForm__SubjectComboBox_ComboBox_Input" value="Vælg" readonly="readonly" accesskey="s" autocomplete="off"></td><td class="rcbArrowCell rcbArrowCellRight"><a id="ctl00_MainContent_CreateWebForm__SubjectComboBox_ComboBox_Arrow" style="overflow: hidden;display: block;position: relative;outline: none;">select</a></td>
            </tr>
        </tbody></table><input id="ctl00_MainContent_CreateWebForm__SubjectComboBox_ComboBox_ClientState" name="ctl00_MainContent_CreateWebForm__SubjectComboBox_ComboBox_ClientState" type="hidden" autocomplete="off">
    </div>
    
    Source code for dropdown options:
    
        <div id="ctl00_MainContent_CreateWebForm__SubjectComboBox_ComboBox_DropDown" class="RadComboBoxDropDown RadComboBoxDropDown_Telerik " style="width: 204px; display: block; top: 0px; visibility: visible; transition: none 0s ease 0s;">
            <div class="rcbScroll rcbWidth" style="height: 126px;">
        <ul class="rcbList"><li class="rcbHovered">Forespørgsel til Energinet</li>
        <li class="rcbItem">Måledata</li><li class="rcbItem">Målepunkt eller ad hoc spørgsmål</li>
        <li class="rcbItem">Orientering til alle</li>
        <li class="rcbItem">Priser</li><li class="rcbItem">Pristilknytninger</li></ul></div></div>
    
    HTMLDoc.getElementById("xyz").focus
    HTMLDoc.getElementById("xyz").click
    HTMLDoc.getElementById("xyz").Value = myoption