猿问

VBA HTML 对象 Internet Explorer 自动化

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


Dim IE As New SHDocVw.InternetExplorer


Dim HTMLDoc As MSHTML.HTMLDocument

然后我导航到一个 URL,并使用 html id 获取下拉菜单并输入 value=我想要的值


HTMLDoc.getElementById("xyz").Value = "dropdown_option" 

我成功获得了该选项。但是,网站不更新吗?例如填写其他字段。


我相信需要运行一些 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>

开心每一天1111
浏览 91回答 1
1回答

鸿蒙传说

对于任何遇到这个问题的人。我通过找到getelementbyid 方法的focus属性解决了这个问题。像这样:首先,我循环浏览列表以找到我的选项。我使用标记名和类名并匹配innertext属性= myoption&nbsp;(仅当该字段不允许您输入文本时才需要)然后当匹配发生时,执行.focus,然后在该对象上执行.click。否则,只需使用焦点,然后单击字段上的属性并输入您的选项:HTMLDoc.getElementById("xyz").focus HTMLDoc.getElementById("xyz").click HTMLDoc.getElementById("xyz").Value&nbsp;=&nbsp;myoption这将自动刷新 html 页面。这解决了我的问题。
随时随地看视频慕课网APP

相关分类

Html5
我要回答