VBA - 登录网站 - 登录按钮。

问题描述 投票:0回答:1

大家下午好

请原谅我,我是VBA新手,一直在工作簿内练习,但对于我的工作将是非常有用的,可以分支到Webscraping。

以下是我的代码。

Sub pullsalesdatafromonline()

Dim IE As Object
Dim doc As HTMLDocument

Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True

IE.navigate "https://www.peoplestuffuk.com/WFMMCDPRD/Login.jsp"

Do While IE.Busy Or IE.readyState <> 4
Application.Wait DateAdd("s", 1, Now)
Loop

Set doc = IE.document

doc.getElementById("txtUserID").Click

doc.getElementById("txtUserID").Value = Usernameinserted

doc.getElementById("txtPassword").Click

doc.getElementById("txtPassword").Value = PasswordInserted

doc.getElementById("Login").Click

IE.navigate "https://www.peoplestuffuk.com/WFMMCDPRD/LoginSubmit.jsp"

IE.navigate "https://www.peoplestuffuk.com/WFMMCDPRD/ModuleSelection.jsp"

IE.navigate "https://www.peoplestuffuk.com/WFMMCDPRD/dashboard/main/dashboardmain.jsp"

IE.navigate "https://www.peoplestuffuk.com/WFMMCDPRD/rrd/matrixReport.jsp?fromPM=N"

End Sub

下面是我想刮取的元素。

<INPUT onclick=javaScript:submitForm() class=button-t type=button value=Login>
<SPAN id=Login_span class=buttonbox></SPAN>

我看了几个其他的链接,已经研究到发射的.onclick事件,但是,似乎不能完全弄清楚它。

VBA中的错误高亮显示了.onclick事件。

IE.navigate "https://www.peoplestuffuk.com/WFMMCDPRD/ModuleSelection.jsp"

行。当我的用户名和密码输入时,页面刷新尝试执行,然后清空登录和密码信息,并将我留在登录页面上。

如果有人能提供帮助,我将非常感激。

谢谢大家

vba web-scraping
1个回答
0
投票

如果你有一个演示的用户名和密码分享,那么有一个有效的方法使用xhr登录。然而,对于你目前的尝试关注,他们不是你在里面使用的id。.getElementById(). 鉴于此,下面的方法应该可以登录。如果脚本做不到,一定要把延迟的内容去掉。

Sub pullsalesdatafromonline()
    Dim IE As Object, doc As HTMLDocument

    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = True

    IE.navigate "https://www.peoplestuffuk.com/WFMMCDPRD/Login.jsp"

    While IE.Busy Or IE.readyState < 4: DoEvents: Wend
    Application.Wait Now + TimeValue("00:00:03")

    Set doc = IE.document

    doc.querySelector("[name='txtUserID']").innerText = "username"
    doc.querySelector("[name='txtPassword']").innerText = "password"

'    Application.Wait Now + TimeValue("00:00:03")
    doc.querySelector("input[value='Login']").Click
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.