read - Inicie sesión en la página web de JavaScript con Excel vba
node js create excel file (1)
He revisado varios foros, pero desafortunadamente mis habilidades html no son lo que deberían ser. ¿Puede alguien ayudarme a encontrar el comando correcto para iniciar sesión en www.emo.no con Excel VBA? (Ver código en la parte inferior).
Logré completar la barra de búsqueda de google con este código:
Sub Google_Test()
Set ie = CreateObject("InternetExplorer.application")
Bnavn = "UserNa"
With ie
.Visible = True
.navigate "www.google.com"
Do While .Busy Or _
.readyState <> 4
DoEvents
Loop
ie.document.all("q").Value = Bnavn
Do While .Busy Or _
.readyState <> 4
DoEvents
Loop
End With
Set ie = Nothing
End Sub
Estoy intentando que Excel VBA inicie sesión en el sitio www.emo.no para mí, pero no puedo encontrar los campos correctos para completar.
El código en la página web en el que intento que Excel VBA inicie sesión es:
<div id="PcLogin">
<script language="Javascript">
var locked = false;
function doLogin() {
document.login.uid.value = document.login.uid.value.toLowerCase();
document.login.pwd.value = document.login.pwd.value.toLowerCase();
return true;
}
if(!document.all){
document.captureEvents(Event.CLICK | Event.FOCUS);
}
/* Code for putting the visible word "Username" in the userID field */
function changeBoxUid()
{
document.getElementById(''uid1'').style.display=''none'';
document.getElementById(''uid2'').style.display='''';
document.getElementById(''uid'').focus();
}
function restoreBoxUid()
{
if(document.getElementById(''uid'').value=='''')
{
document.getElementById(''uid1'').style.display='''';
document.getElementById(''uid2'').style.display=''none'';
}
}
/* End code for userID field */
/* Code for putting the visible word "Password" in the password field */
function changeBoxPwd()
{
document.getElementById(''div1'').style.display=''none'';
document.getElementById(''div2'').style.display='''';
document.getElementById(''pwd'').focus();
}
function restoreBoxPwd()
{
if(document.getElementById(''pwd'').value=='''')
{
document.getElementById(''div1'').style.display='''';
document.getElementById(''div2'').style.display=''none'';
}
}
/* End code for password field */
</script><div id="loginBody">
<form target="_top" method="post" id="login" name="login" action="ePortal/ctrl" onsubmit="
if (locked) {
return false;
}
else
{
locked=true;
doLogin();
};
">
<div class="PcLoginPositionInput">
<input value="user" name="action" type="hidden"><input value="login" name="spec" type="hidden">
<div id="uid1">
<input onfocus="changeBoxUid()" name="uid_temp" type="text" class="PcLoginInputFields" value="Brukernavn">
</div>
<div id="uid2" style="display: none;">
<input onblur="restoreBoxUid()" value="" id="uid" name="uid" type="text" class="PcLoginInputFields">
</div>
<div id="div1">
<input onfocus="changeBoxPwd()" type="text" name="pass_temp" class="PcLoginInputFields" value="Passord">
</div>
<div style="display:none" id="div2">
<input onblur="restoreBoxPwd()" value="" type="password" id="pwd" name="pwd" class="PcLoginInputFields">
</div>
</div>
<div class="PcLoginForgottenPwd">
<a class="login" href="ePortal/ctrl?action=requestnewpassword">Glemt passord?</a>
</div>
<div id="PcLoginRegister"></div>
<input value="" type="submit" class="login_rollover">
</form>
</div>
</div>
He intentado con "uid", "uid1", "uid2", "uid_temp", "div1", "div2", "pass_temp" y "pwd", pero no hay ninguna acción en la pantalla.
Aquí está el código que estoy usando para el sitio:
Sub EMO_login()
'' Source for this code:
'' http://stackoverflow.com/questions/24038230/fill-user-name-and-password-in-a-webpage-using-vba
'' http://stackoverflow.com/questions/25319983/logging-in-to-website-with-excel-vba
Set ie = CreateObject("InternetExplorer.application")
Bnavn = User1
Pw = testPass1
With ie
.Visible = True
.navigate "www.emo.no"
Do While .Busy Or _
.readyState <> 4
DoEvents
Loop
''This is where the input command should be.
Do While .Busy Or _
.readyState <> 4
DoEvents
Loop
End With
Set ie = Nothing
End Sub
Estoy en blanco en cuanto a qué poner aquí. ¿Alguien puede mostrarme el comando para completar los dos campos, así como enviar e iniciar sesión?
Thans a @nhee por ayudarme a encontrar una solución.
El código de trabajo se ve así:
Sub EMO_login()
Dim ie As Object
Dim sht As Worksheet
Set sht = Sheet8
Set ie = CreateObject("InternetExplorer.application")
With ie
.Visible = True
.navigate "www.emo.no"
Do While .Busy Or _
.readyState <> 4
DoEvents
Loop
''Login procedure
ie.document.getElementById("uid2").getElementsByTagName("input")(0).Value = "MyUsername"
ie.document.getElementById("div2").getElementsByTagName("input")(0).Value = "MyPassword"
ie.document.forms("login").submit
Do While .Busy Or _
.readyState <> 4
DoEvents
Loop
End With
Set ie = Nothing
End Sub