我正在尝试获取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ção do Windows</option>
<option value="Forms">Autenticação de Formulários</option>
</select>
答案 0 :(得分:0)
用于目标元素的CSS选择器:
您可以使用CSS选择器来定位该选项。例如
#ctl00_PlaceHolderMain_ClaimsLogonSelector option[value="Windows"]
#
表示className。然后“ option [value =“ Windows”]“意味着包含属性为tag
的{{1}}选项
关于HTML示例的CSS查询:
VBA:
您可以通过value="Windows"
方法应用CSS选择器:
.querySelector
注意:我已将内部双引号切换为单引号,以避免不得不将它们转义为文字字符串。
Document 方法querySelector()返回文档中与指定选择器或选择器组匹配的第一个 Element 。如果未找到匹配项,则返回 null 。
语法: element = document.querySelector(selectors); <==请注意“;” 在VBA中未使用。