I Webフォームを埋めるために、次のコードを持っていますが、この特定のWebサイトにコードが動作していない:VBAのInternet Explorer:Webフォームを埋めることができない
Const loginSelectSistema_Name = "url"
Const loginInputUsuário_Name = "Usuario"
Const loginInputSenha_Name = "Senha"
Const loginInputOk_Name = "imageField2"
Const USERNAME = "NomeUsuário"
Const PASSWORD = "SenhaAcesso"
Dim ieApp As InternetExplorer
Dim iePage As HTMLDocument
Function loginPage()
'
Set ieApp = New InternetExplorer
'
ieApp.Visible = True
ieApp.navigate (loginWebsite)
'
'Wait for page to load
Do Until ieApp.ReadyState = READYSTATE_COMPLETE
Loop
'
'
Set iePage = ieApp.Document
'
fillInputObject loginSelectSistema_Name, "jcaa"
fillInputObject loginInputUsuário_Name, USERNAME
fillInputObject loginInputSenha_Name, PASSWORD
'
iePage.all.Item(loginInputOk_Name).Click
End Function
Private Sub fillInputObject(ByVal objectName As String, ByVal value As String, Optional IdentificadorElemento As IdentificadorElementoHTML = Nome)
'
'Preenche o Objeto Input com um determinado valor
Dim elementHTML As HTMLObjectElement
'
If (IdentificadorElemento = Nome) Then
Set elementHTML = iePage.getElementsByName(objectName).Item
End If
'
If (IdentificadorElemento = Id) Then
Set elementHTML = iePage.getElementById(objectName)
End If
'
If (IsObject(elementHTML)) Then
If (Not (elementHTML Is Nothing)) Then
elementHTML.value = value
End If
End If
End Sub
すると、デバッグ、機能fillInputObject
で行: If (Not (elementHTML Is Nothing)) Then
値は常にNothingで、Webフォームは入力されません。
<table width="90%" cellspacing="0" cellpadding="0" bordercolor="#DADADA" border="1" bgcolor="#F7F7F8" align="center" height="110">
<tbody><tr height="2"><td width="62"></td><td width="0"></td><td width="592"></td><td width="223"></td></tr>
<tr height="15">
<td colspan="4" bordercolor="#F7F7F8" style="vertical-align:left"><strong>Selecione o Sistema:</strong></td>
</tr>
<tr height="15">
<td colspan="4" bordercolor="#F7F7F8" style="vertical-align:left">
<font size="1px" face="Verdana, Arial, Helvetica, sans-serif">
<select name="url" class="combobox" style="width:180px;">
<option value="jcaa">Cadastro de Alunos</option>
<option value="paef">Cadastro Funcional</option>
<option value="paec">Controle de Freqüência</option>
<option value="papc">Desp de Pessoal (SDPE)</option>
<option value="jcgo">Cargos</option>
<option value="paea">Contagem de Tempo</option>
<option value="jata">Formação Curricular</option>
<option value="jrha">Gratificação/Promoção QM</option>
<option value="paex">PAEX - Cadastro Funcional</option>
</select>
</font>
</td>
</tr>
<tr height="2"><td colspan="4" bordercolor="#F7F7F8"></td></tr>
<tr><td colspan="2" bordercolor="#F7F7F8" align="left">
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">
Usuário
</font>
</td>
<td colspan="2" bordercolor="#F7F7F8" align="left">
<input id="Usuario" name="Usuario" size="10" maxlength="10" value="SE0452336A" type="text">
</td></tr>
<tr><td colspan="2" bordercolor="#F7F7F8" align="left">
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">
Senha
</font>
</td>
<td colspan="2" bordercolor="#F7F7F8" align="left">
<input id="Senha" name="Senha" size="14" maxlength="14" type="password">
</td></tr>
<tr>
<td colspan="2" bordercolor="#F7F7F8" align="left">
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">
</font>
</td>
<td colspan="2" bordercolor="#F7F7F8" align="left">
<input name="imageField2" src="images/ok_sen.gif" width="24" type="image" border="0" height="17">
</td></tr>
</tbody></table>
私が間違っているのは何:
以下は、私がWebフォームを埋めるためにしようとHTMLでページがありますか?
'Nome'と' IdentificadorElementoHTMLは 'どのように実装されていますか? – dee
@dee IdentificadorElementoHTMLは、Nome(整数を表す)の中にいくつかの要素を保持する列挙型で、コードに柔軟性を持たせるためのもので、値がNomeの場合、要素はIdによって取得されます。それは... Webページの要素識別子にのみ依存します。 – tdmsoares
私は、指定されたHTMLでコードをテストすると、 'Usuario'と' Senha' 'loginInputUsuário_Name'と' loginInputSenha_Name'にはどのような値がありますか? – dee