Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 网站无法识别通过VBA代码进行的选择_Html_Excel_Vba_Web Scraping_Internet Explorer 11 - Fatal编程技术网

Html 网站无法识别通过VBA代码进行的选择

Html 网站无法识别通过VBA代码进行的选择,html,excel,vba,web-scraping,internet-explorer-11,Html,Excel,Vba,Web Scraping,Internet Explorer 11,下面提到的代码工作正常,我面临的问题是,当我输入验证码并单击“继续”按钮时,网站无法识别“网上银行”选项卡的选择,所述选择仅通过下面提到的VBA代码完成 我必须手动选择它,然后才可以继续 错误在所附图像中用红色箭头标记 可能的修正是什么 Sub TDS_Autofill() Dim IE As Object Set IE = CreateObject("InternetExplorer.Application") IE.Visible = True IE.navigate "https://on

下面提到的代码工作正常,我面临的问题是,当我输入验证码并单击“继续”按钮时,网站无法识别“网上银行”选项卡的选择,所述选择仅通过下面提到的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

触发与每个下拉列表相关联的
onchange
事件(
select
)。此外,在整个过程中使用更快的css选择器,可以改善页面加载等待条件。用更快的id+类替换类型+属性选择器。使用querySelector可以在收集集合和索引时使用单个元素

Option Explicit
Public Sub TDS_Autofill()
    Dim IE As Object

    Set IE = CreateObject("InternetExplorer.Application")
    With IE
        .Visible = True
        .Navigate2 "https://onlineservices.tin.egov-nsdl.com/etaxnew/tdsnontds.jsp"

        While .Busy Or .readyState <> 4: DoEvents: Wend

        .document.parentWindow.execScript "sendRequest(281)"

        While .Busy Or .readyState <> 4: DoEvents: Wend

        With .document
            .querySelector("#\30 021").Click
            .querySelector("#\32 00").Click
            .querySelector("[value='94C - Payment of contractors and sub-contractors']").Selected = True
            .querySelector("#div_nature_error .form-control").FireEvent "onchange"
            .querySelector("[value='Axis Bank|https://www.axisbiconnect.co.in/tax/tax.asp']").Selected = True
            .querySelector("#NetBank_Name_c").FireEvent "onchange"
            .querySelector("#div_nature_error .form-control").selectedIndex = 2
            .querySelector(".input-pan").Value = "BPLU00890B"

            With .querySelector("#div_assessment_error .form-control")
                .selectedIndex = 3
                .FireEvent "onchange"
            End With

            .querySelector("#div_add_line1_error .form-control").Value = "83/18"
            .querySelector("#div_add_line2_error .form-control").Value = "Advance College"
            .querySelector("#div_add_line4_error .form-control").Value = "Vishnu Pura"
            .querySelector("#div_add_line5_error .form-control").Value = "Ujjain"

            With .querySelector("#div_state_error .form-control")
                .selectedIndex = 21
                .FireEvent "onchange"
            End With

            .querySelector("#div_pincode_error .form-control").Value = "your_pin"
            .querySelector("#div_email_error .form-control").Value = "your_email@gmail.com"
            .querySelector("#div_mobile_error .form-control").Value = "your_mobile"

            Stop                                 'Enter captcha

            .querySelector("#Submit").Click
            Stop '<== delete me later
        End With
        .Quit
    End With
End Sub
选项显式
公共子TDS_自动填充()
模糊的物体
设置IE=CreateObject(“InternetExplorer.Application”)
与IE
.Visible=True
.导航2“https://onlineservices.tin.egov-nsdl.com/etaxnew/tdsnontds.jsp"
忙时或准备时状态4:DoEvents:Wend
.document.parentWindow.execScript“发送请求(281)”
忙时或准备时状态4:DoEvents:Wend
随附.文件
.querySelector(“#\30 021”)。单击
.querySelector(“#\32 00”)。单击
.querySelector(“[value='94C-承包商和分包商的付款]”)。Selected=True
.querySelector(“#div_nature_error.form control”).FireEvent“onchange”
.querySelector(“[value=”轴组|https://www.axisbiconnect.co.in/tax/tax.asp“]”)。所选为True
.querySelector(“#NetBank_Name_c”).FireEvent“onchange”
.querySelector(“#div_nature_error.form control”)。selectedIndex=2
.querySelector(“.input pan”).Value=“BPLU00890B”
使用.querySelector(“#div_assessment_error.form control”)
.选择的索引=3
.FireEvent“onchange”
以
.querySelector(“#div_add_line1_error.form control”).Value=“83/18”
.querySelector(“#div_add_line2_error.form control”).Value=“高级学院”
.querySelector(“#div_add_line4_error.form control”).Value=“毗湿奴Pura”
.querySelector(“#div_add_line5_error.form control”).Value=“Ujjain”
使用.querySelector(“#div_state_error.form control”)
.已选择索引=21
.FireEvent“onchange”
以
.querySelector(“#div_pincode_error.form control”).Value=“您的pin”
.querySelector(“#div_email_error.form control”).Value=“您的_email@gmail.com"
.querySelector(“#div_mobile_error.form control”).Value=“您的移动设备”
停止输入验证码
.querySelector(“提交”)。单击

“停止”鉴于您之前的选择,指示的下拉列表不可用。你到底想达到什么目的?请在提交前指出所需的确切选择。是否有
getElementById(“NetBanking”)的
属性。
?所有选择都是由我的代码自动完成的,但网站不会将NetBanking选项卡的选择视为选择,我已经给出了Axis Bank for NetBanking选项卡的值,它也通过代码被选中,但网站将其视为空白,就好像没有选择任何内容一样。getElementById(“NetBanking”)只是一个按钮,没有.value属性。Hmmm。。。也许我错过了什么。但是,如果选中了正上方下拉列表旁边的单选按钮,则无法从中选择底部下拉列表。这有意义吗?