提交点击后阅读第二页的元素

时间:2019-01-23 16:15:21

标签: html excel vba web web-scraping

我正在使用excel单元格数据来填充Web表单,这里的问题是使用元素ID填充第一页中的文本后,单击“提交”会加载新的IE。

现在,我无法使用元素ID等填充文本,因为其(VBA)无法识别或不考虑它。

IE页面正确加载,这里没有问题。

Sub Test1()
    Dim IE As Object
    Dim doc As HTMLDocument
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = True
    IE.navigate "https://xyzfrmTarget=New&Text_ident=002719&frmOption=CREATE"
    Do While IE.Busy
        Application.Wait DateAdd("s", 1, Now)
    Loop
    Set doc = IE.document
    'IE.document.getElementById().Value="test"
    'doc.getElementById("ui-new_widget-1_new_company_12").Value = ThisWorkbook.Sheets("Data").Range("A2").Value
    doc.getElementById("ui-new_widget-1_monitor_12").Value = ThisWorkbook.Sheets("Data").Range("A2").Value
    doc.getElementById("new_date").Value = "2019-01-19"
    'ThisWorkbook.Sheets("Data").Range("c2").Value
    doc.getElementById("new_no_mail").Click
    IE.document.forms(0).submit
End Sub

它使用Excel中的文本数据提交第一页,但是加载的第二页出现问题

1 个答案:

答案 0 :(得分:0)

在导航和.click后尝试使用适当的等待,然后关闭.document。在.click

之后,该内容将更新为新内容
Option Explicit
Public Sub PerformActions()
    Dim IE As InternetExplorer
    Set IE = New InternetExplorer

    With IE
        .Visible = True
        .Navigate2 "https://xyzfrmTarget=New&Text_ident=002719&frmOption=CREATE"

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

        .document.getElementById("ui-new_widget-1_monitor_12").Value = ThisWorkbook.Sheets("Data").Range("A2").Value
        .document.getElementById("new_date").Value = "2019-01-19"
        .document.getElementById("new_no_mail").Click

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

         '.document ''< do whatever references off .document here
         'other code
         '.quit
    End With
End Sub