无法使用VBA在网页中输入用户名和密码

无法使用VBA在网页中输入用户名和密码,vba,excel,internet-explorer,automation,Vba,Excel,Internet Explorer,Automation,我正在尝试使用VBA登录到一个网页,但无法完成。问题是在用户名和密码打孔后,当单击登录按钮时,网页会显示一个错误为“必填字段”,因此基本上不会输入凭据 我还尝试使用IE.document.getElementById(“email”).setAttribute(“value”)=“XX”来设置属性的值,但仍然抛出相同的错误。我也尝试过聚焦法,但运气不好 我希望我已经解释了我的问题,请原谅我的错误。 网页链接“”我无法共享凭据,因为它是机密的 Set IE=CreateObject(“Intern

我正在尝试使用VBA登录到一个网页,但无法完成。问题是在用户名和密码打孔后,当单击登录按钮时,网页会显示一个错误为“必填字段”,因此基本上不会输入凭据

我还尝试使用IE.document.getElementById(“email”).setAttribute(“value”)=“XX”来设置属性的值,但仍然抛出相同的错误。我也尝试过聚焦法,但运气不好

我希望我已经解释了我的问题,请原谅我的错误。 网页链接“”我无法共享凭据,因为它是机密的

Set IE=CreateObject(“InternetExplorer.application”)
可见=真实
即“导航”https://dashboard.stripe.com/login"
直到不忙为止。忙:事件:循环
Set doc=IE.document
Do While doc.ReadyState“完成”:DoEvents:循环
IE.document.getelementbyid(“电子邮件”).Value=”a@A.com"
IE.document.getelementbyid(“密码”).Value=“a”
Set ElementCol=IE.document.getElementsByTagName(“span”)
对于ElementCol中的每个链接
如果link.innerHTML=“登录您的帐户”,则
链接。点击
如果结束
下一个
我使用执行了以下操作。安装后,转到VBE>工具>参考>添加对selenium类型库的参考

Option Explicit
Public Sub EnterInfo()
    Dim d As WebDriver, keys As New Selenium.keys
    Set d = New ChromeDriver
    Const url = "https://dashboard.stripe.com/login"
    With d
        .AddArgument "--headless"
        .Start "Chrome"
        .get url
         .FindElementById("email").SendKeys "joe.blogs@aol.com"
         .FindElementById("password").SendKeys keys.Enter
        .FindElementById("password").SendKeys "password"
        .FindElementById("password").SendKeys keys.Enter
         .FindElementByTag("form").submit
         Stop '<== Delete me
        '.Quit
    End With
End Sub
选项显式
公共子企业信息()
Dim d作为WebDriver,键作为New Selenium.keys
设置d=新的色度驱动器
常量url=”https://dashboard.stripe.com/login"
与d
.AddArgument“-无头”
.启动“Chrome”
.获取url
.FindElementById(“电子邮件”).SendKeys“乔。blogs@aol.com"
.FindElementById(“密码”).SendKeys.Enter
.FindElementById(“密码”).SendKeys“密码”
.FindElementById(“密码”).SendKeys.Enter
.FindElementByTag(“表格”)。提交

停止“我在尝试登录时打了一个recaptcha以证明不是机器人。你确定”刮“吗“允许吗?即使允许,我认为验证码将是一个难以克服的障碍。当然不是用VBA。我想是的。在同一个系统上成功登录后,验证码只会弹出一次,不会。你能输入凭据并点击sigin吗?嗨,QHarr,你能发布你与Selenium一起使用的代码吗?谢谢你的帮助,但是我没有与Selenium一起工作,所以我很难进一步,因为我必须在登录后从网页上获取信息,并导航到不同的选项以获取信息。嗨,QHarr,我尝试了上面的代码,但在启动web浏览器后出现了一个错误。(基础连接已关闭,接收时发生意外错误),因此我将浏览器更改为IE it works。另外,你是正确的验证码似乎是一个问题,因为它显示每次我登录。你有什么解决办法吗?谢谢你的帮助。你对这个错误有什么解决办法吗?嗨,QHarr,已经有一段时间了。我已经解决了验证码问题。现在的问题是我需要选择下拉列表来更改帐户,但我无法这样做。感谢您的帮助,请发布您的验证码解决方案,这将对未来的读者有用。如果您针对当前问题发布一个新问题,并包含URL/HTML(使用代码段工具而不是图像插入),然后在此处给我写一行,我很乐意提供帮助。
Option Explicit
Public Sub EnterInfo()
    Dim d As WebDriver, keys As New Selenium.keys
    Set d = New ChromeDriver
    Const url = "https://dashboard.stripe.com/login"
    With d
        .AddArgument "--headless"
        .Start "Chrome"
        .get url
         .FindElementById("email").SendKeys "joe.blogs@aol.com"
         .FindElementById("password").SendKeys keys.Enter
        .FindElementById("password").SendKeys "password"
        .FindElementById("password").SendKeys keys.Enter
         .FindElementByTag("form").submit
         Stop '<== Delete me
        '.Quit
    End With
End Sub