0

您好,提前感谢您的宝贵时间。

我正在尝试使用 VBscript 自动登录特定站点。我的代码工作得很好......在某种程度上。我执行脚本,它打开 IE,填充用户名和密码,然后提交。问题是,在提交凭据后,我收到一条错误消息,提示用户名和/或密码不正确。我知道 100% 的用户名和密码实际上都是正确的。

我很确定我已经找到了罪魁祸首,但是我无法弄清楚我应该如何修改我的代码以适应。使用 firebug 仔细查看登录屏幕后发现,用户名中附加了一个域。我的代码没有反映这一点,因此我在提交后收到用户名/密码错误。

这是我的代码...在我的代码下面是使用 firebug 从网站中提取的 JavaScript:

On Error Resume Next 

Const PAGE_LOADED = 4

Set objIE = CreateObject("InternetExplorer.Application")

Call objIE.Navigate("https://snvacaid-bwxsp01.megapathvoice.com/Login/")

objIE.Visible = True

Do Until objIE.ReadyState = PAGE_LOADED : Call WScript.Sleep(100) : 

Loop

objIE.Document.loginForm.EnteredUserID.Value = "username"

objIE.Document.all.Password.Value = "password"

If Err.Number <> 0 Then

    msgbox "Error: " & err.Description

End If

Call objIE.Document.all.loginForm.submit

Set objIE = Nothing

来自网站的 JavaScript:

function submitForm() {
    //append domain to the userId if it is available and not

    //already contained in the userId

    var userId = document.loginForm.EnteredUserID.value;

    var domain = document.loginForm.domain.value;

    document.loginForm.UserID.value = userId;

    if ((userId.indexOf("@") == -1) && (domain != "")){
        document.loginForm.UserID.value = userId + "@" + domain;
    }

    document.loginForm.submit();
}
4

1 回答 1

0

很抱歉,我花了这么长时间才告诉我回答了我自己的问题;但是,下面是我想出的解决方案,它确实有效。谢谢大家的回复。

On Error Resume Next 

Const PAGE_LOADED = 4

Set WshShell = WScript.CreateObject("WScript.Shell")

Set objIE = CreateObject("InternetExplorer.Application")

Call objIE.Navigate("https://snvacaid-bwxsp01.megapathvoice.com/Login/")

objIE.Visible = True

Do Until objIE.ReadyState = PAGE_LOADED : Call WScript.Sleep (100) 

Loop

objIE.Document.loginForm.UserID.Value = "username"

objIE.Document.all.Password.Value = "password"

If Err.Number <> 0 Then

msgbox "Error: " & err.Description

End If



Call objIE.Document.all.loginForm.submit
于 2013-10-30T09:10:53.623 回答