html - 无法在银行网站输入登录 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
解决方案
无法在 VBA 中保护您的凭据。您正在以明文形式存储密码。永远不要为银行之类的事情这样做。
要自动化登录过程,您需要使用为此目的制作的工具。使用密码管理器软件安全地存储密码。大多数现代密码管理器都具有自动登录的表单自动填充功能。
您可以在登录后进行一些自动化运行,但我不建议为此使用 VBA。有为此目的而制作的网络库,因此您不必从头开始编写它。如果您使用 Python Web 库,您可以轻松地从 Excel 电子表格中提取数据,其代码编写起来并不比 VBA 难。
推荐阅读
- docker - Docker:如何与其他两个图像共享文件?
- c++ - 关于函数模板实例化的 sfinae
- laravel - 有什么方法可以加快 ffmpeg 处理时间
- javascript - JSON groupBy javascript,返回父对象中的多个字段
- python - OSError: 无法识别图像文件 'dataset/subtest/Thumbs.db'"
- iis - IIS SharePoint 中的自定义用户代理字符串
- keras - 我的预测功能有什么问题?
- c - 操作码(Lua 字节码)后面的数字是什么意思?
- python-3.x - NameError:名称'word'未定义,python
- python - 在不使用 min、max 和 sort 等内置函数对列表进行排序时,使用 while 1 而不是 while timelist2 时出现索引错误