首页 > 解决方案 > 无法在银行网站输入登录 ID 和密码

问题描述

我设法编译了下面提到的代码。我想进一步扩展我的编码,因为现在这个编码将我带到我的银行网站。

但我无法弄清楚如何通过 VBA 编码将我的银行登录 ID 和密码输入银行网站。我还希望我的代码首先单击公司登录按钮,然后继续输入登录 ID 和密码。

我还附上了银行网站的图片以供参考。

在此处输入图像描述

Sub TDS_Autofill()
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.navigate "https://onlineservices.tin.egov-nsdl.com/etaxnew/tdsnontds.jsp"
Do While IE.Busy
Application.Wait DateAdd("s", 1, Now)
Loop

Set DOC = IE.document
DOC.parentWindow.execScript "sendRequest(281)", "JavaScript"

Do While IE.Busy
Application.Wait DateAdd("s", 1, Now)
Loop


If ThisWorkbook.Sheets("Challan AutoFill").Range("n2").Value = "Company" Then
DOC.getElementById("0020").Click
ElseIf ThisWorkbook.Sheets("Challan AutoFill").Range("n2").Value = "Non Company" Then
DOC.getElementById("0021").Click
End If



If ThisWorkbook.Sheets("Challan AutoFill").Range("p2").Value = "(200) TDS/TCS Payable by Taxpayer" Then
DOC.getElementById("200").Click
ElseIf ThisWorkbook.Sheets("Challan AutoFill").Range("p2").Value = "(400) TDS/TCS Regular Assessment" Then
DOC.getElementById("400").Click
End If


IE.document.querySelector("select.form-control").selectedIndex = ThisWorkbook.Sheets("Challan AutoFill").Range("s2").Value
DOC.querySelector("#div_nature_error .form-control").FireEvent "onchange"



DOC.getElementById("NetBanking").Click

DOC.getElementById("NetBank_Name_c").Value = ThisWorkbook.Sheets("Challan AutoFill").Range("u2").Value
DOC.querySelector("#NetBank_Name_c").FireEvent "onchange"


DOC.getElementsByName("TAN")(1).Value = ThisWorkbook.Sheets("Challan AutoFill").Range("b2").Value

IE.document.querySelector("select[name=AssessYear]").selectedIndex = ThisWorkbook.Sheets("Challan AutoFill").Range("m2").Value


DOC.getElementsByName("Add_Line1")(1).Value = ThisWorkbook.Sheets("Challan AutoFill").Range("c2").Value

DOC.getElementsByName("Add_Line2")(1).Value = ThisWorkbook.Sheets("Challan AutoFill").Range("d2").Value

DOC.getElementsByName("Add_Line3")(1).Value = ThisWorkbook.Sheets("Challan AutoFill").Range("e2").Value

DOC.getElementsByName("Add_Line4")(1).Value = ThisWorkbook.Sheets("Challan AutoFill").Range("f2").Value

DOC.getElementsByName("Add_Line5")(1).Value = ThisWorkbook.Sheets("Challan AutoFill").Range("g2").Value


IE.document.querySelector("select[name=Add_State]").selectedIndex = 21


DOC.getElementsByName("Add_PIN")(1).Value = ThisWorkbook.Sheets("Challan AutoFill").Range("i2").Value

DOC.getElementsByName("Add_EMAIL")(0).Value = ThisWorkbook.Sheets("Challan AutoFill").Range("j2").Value

DOC.getElementsByName("Add_MOBILE")(0).Value = ThisWorkbook.Sheets("Challan AutoFill").Range("K2").Value


DOC.getElementsByName("captchaText")(0).Value = InputBox("Captcha:")

DOC.querySelector("#Submit").Click
   
   
Do While IE.Busy
Application.Wait DateAdd("s", 1, Now)
Loop
        
DOC.getElementById("consentCheck").Click
        
DOC.getElementById("Submit").Click

End Sub

标签: htmlexcelvba

解决方案


无法在 VBA 中保护您的凭据。您正在以明文形式存储密码。永远不要为银行之类的事情这样做。

要自动化登录过程,您需要使用为此目的制作的工具。使用密码管理器软件安全地存储密码。大多数现代密码管理器都具有自动登录的表单自动填充功能。

您可以在登录后进行一些自动化运行,但我不建议为此使用 VBA。有为此目的而制作的网络库,因此您不必从头开始编写它。如果您使用 Python Web 库,您可以轻松地从 Excel 电子表格中提取数据,其代码编写起来并不比 VBA 难。


推荐阅读