【发布时间】:2020-02-11 09:22:19
【问题描述】:
下面提到的代码工作正常,我面临的问题是当我输入 CAPTCHA 并单击继续按钮时,网站无法识别 NetBanking Tab 的选择,所述选择是通过下面提到的 VBA 代码完成的仅限。
我必须手动选择它,然后它才会继续进行。
错误在附图中用红色箭头标记。
可能的修正应该是什么?
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.getElementById("NetBanking").Click
doc.getElementById("NetBank_Name_c").Value = ThisWorkbook.Sheets("Challan AutoFill").Range("u2").Value
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
End Sub
【问题讨论】:
-
鉴于您之前的选择,指示的下拉菜单不可用。你到底想达到什么目的?请在提交前说明所需的确切选择。
-
getElementById("NetBanking").是否有.value属性? -
所有选择都是由我的代码自动完成的,但是网站没有将 NetBanking Tab 的选择视为选择,我已经为 NetBanking Tab 提供了 Axis Bank 的值,它也被选中通过代码,但网站将其视为空白,就好像那里没有选择任何内容一样。
-
getElementById("NetBanking") 只是一个按钮,没有 .value 属性。
-
嗯......也许我错过了一些东西。但是,如果您已选中上方下拉列表旁边的单选按钮,则无法选择该底部下拉列表。这有意义吗?
标签: html excel vba web-scraping internet-explorer-11