使用VBA更改Web应用程序(HTML)上的下拉列表的麻烦

时间:2014-09-16 15:31:06

标签: html vba drop-down-menu

我正在尝试获取VBA代码来更改网页上的下拉列表。我调整了下面的代码,我已经成功使用了将登录名和密码传递给网页,但我的“改编”却遇到了麻烦:

Option Explicit

Sub Logar_CanalDireto()

Dim ie As Object
Dim ObjElement As Object

Set ie = CreateObject("InternetExplorer.Application")

With ie
    .Visible = True
    .Navigate "http://canaldireto/Claro/CLAR041/default.aspx"

    Do Until .ReadyState = 4
        DoEvents
    Loop

    .document.all.Item("ctl00$PlaceHolderMain$ClaimsLogonSelector").Value = "Windows"

End With

End Sub

这是HTML代码:

Selecione as credenciais que você deseja usar para efetuar logon neste site do SharePoint:
<br />
<br />
<select name="ctl00$PlaceHolderMain$ClaimsLogonSelector"   onchange="javascript:setTimeout('__doPostBack(\'ctl00$PlaceHolderMain$ClaimsLogonSelector\',\'\')',   0)" id="ctl00_PlaceHolderMain_ClaimsLogonSelector">
<option selected="selected" value="none"></option>
<option value="Windows">Autentica&#231;&#227;o do Windows</option>
<option value="Forms">Autentica&#231;&#227;o de Formul&#225;rios</option>

</select>

1 个答案:

答案 0 :(得分:0)

用于目标元素的CSS选择器:

您可以使用CSS选择器来定位该选项。例如

#ctl00_PlaceHolderMain_ClaimsLogonSelector option[value="Windows"]

#表示className。然后“ option [value =“ Windows”]“意味着包含属性为tag的{​​{1}}选项


关于HTML示例的CSS查询:

CSS query


VBA:

您可以通过value="Windows"方法应用CSS选择器:

.querySelector

注意:我已将内部双引号切换为单引号,以避免不得不将它们转义为文字字符串。


.querySelector方法:

Document 方法querySelector()返回文档中与指定选择器或选择器组匹配的第一个 Element 。如果未找到匹配项,则返回 null

语法: element = document.querySelector(selectors); <==请注意“;” 在VBA中未使用。