首页 > 解决方案 > 输入 excel 数据重叠的 Web 占位符问题

问题描述

在查找电子邮件地址是否有效时,我遇到了这个问题,其中网站的占位符总是隐藏我的 excel 输入,并且不会转到下一个命令。还需要在电子邮件地址旁边的 excel 中从网页的内部文本中捕获消息。

使用 VBA web 将在 web 的登录页面中从 excel 的单元格 A2 输入电子邮件,然后单击下一步。

Sub Test()
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.navigate "https://login.live.com/login.srf?wa=wsignin1.0&rpsnv=13&ct=1549662555&rver=6.7.6631.0&wp=MBI_SSL&wreply=https%3a%2f%2fwww.bing.com%2fsecure%2fPassport.aspx%3frequrl%3dhttps%253a%252f%252fwww.bing.com%252fsearch%253fq%253dmsn%2526form%253dEDGEAR%2526qs%253dPF%2526cvid%253d904d7a00fd1b4125ab81e0f3bb83208e%2526cc%253dUS%2526setlang%253den-US%2526wlsso%253d1%2526wlexpsignin%253d1%26sig%3d22F3BD543C546368216CB1A93D3562E7&lc=1033&id=264960&CSRFToken=f4af0dd6-d72f-4001-9430-e76c6c91253b&aadredir=1"

Do While IE.readyState <> 4: DoEvents: Loop
IE.document.getElementById("i0116").Value = "absdrs@outlook.com"
End Sub

如果出现“帐户不存在。输入其他帐户”之类的错误,请在 Excel 中的单元格 A2 前面提及“错误”,否则为“有效”。它将继续进入单元格 A2 中的下一个值,直到最后。(用于网络循环的 VBA)

标签: excelvbawebweb-scrapingplaceholder

解决方案


该网站期待击键。要么在 IE 中找到一种方法来触发它,也许是使用 FireEvent,或者切换到使用 selenium basic。安装selenium basic后,转到 VBE > Tools > References 并添加对 Selenium 类型库的引用。

Option Explicit

Public Sub test()
    Dim d As ChromeDriver, loginDetails(), ws As Worksheet, i As Long
    Set ws = ThisWorkbook.Worksheets("Sheet2")
    loginDetails = ws.Range("A1:B2").Value       ' Column A has email, col B has password
    Set d = New ChromeDriver
    With d
        .get "https://login.live.com/"

        For i = LBound(loginDetails, 1) To UBound(loginDetails, 1)
            .FindElementById("i0116").SendKeys loginDetails(i, 1)
            .FindElementById("idSIButton9").Click

            'Other code ....
        Next
        .Quit
    End With
End Sub

推荐阅读