Ich habe Probleme beim Laden von Text in ein Suchfeld in IE mit IE.document.getElementbyID
Ich bin der Code, den ich bisher verwende. Ich bin mir sicher, dass mir hier etwas fehlt. Dies ist ein Update des iframe-Code Ich bin hier einschließlichLaufzeitfehler '424': Objekt erforderlich IE.Document.GetElementById Textfeld in iframe
<iframe tabindex="-1" id="WorkdayApp" src="javascript:""" style="left: -1000px; top: -1000px; width: 0px; height: 0px; border-top-color: currentColor; border-right-color: currentColor; border-bottom-color: currentColor; border-left-color: currentColor; border-top-width: medium; border-right-width: medium; border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; position: absolute;">
<input class="gwt-TextBox GPNS02MDDGJ" aria-label="Expanded, multiSelectPrompt, 0 items selected, Use up and down arrows to select. or Type in a search" type="text" placeholder="search" data-automation-id="searchBox"/>
"
Sub workdayrep()
'*******************************
Dim iframe As Object
Dim textbox As Object
'*******************************
Dim IE As InternetExplorer
Set IE = New InternetExplorer
Set iframe = IE.document.getElementById("WorkdayApp")
Set textbox = iframe.contentWindow.document.getElementById("searchBox")
IE.Visible = True
IE.navigate "https://wd.workday.com/142.htmld"
Application.StatusBar = "Page Loading"
'Do While IE.Busy
' Application.Wait DateAdd("s", 1, Now)
' Loop
Application.Wait Now + TimeValue("00:00:10")
textbox.Value = "TEST"
' Application.StatusBar = "Check"
End Sub
, während ich es nicht testen kann, schlage ich vor, noch Sie 'Während IE.Busy Oder IE.ReadyState <> 4: DoEvents: Wend' statt' Anwendung. Wait "... auch, bist du sicher" IE.document.getElementById ("searchBox") 'gibt nur ein Objekt zurück? Stoppen Sie einfach Ihren Code vor Ihrer 'getElementById' über' stop' oder einen Haltepunkt und setzen Sie Ihre "watches" direkt 'IE.document.getElementById (" searchBox ")' und dann überprüfen Sie, was es zurückgibt ... ich einfach nicht denke, dass Sie direkt über '.Value' darauf zugreifen können. –
Ich habe mir nur den Code der Site angeschaut, den ich versuche den Text einzugeben, es ist wie in einem Iframe. –
Manchmal IE Automatisierung in VBA kann ein bisschen seltsam sein. Sie können versuchen, Ihren Suchwert als String 'Dim SV as String'' SV = "TEST" 'zu definieren und dann direkt auf IE.document.getElementById (" searchBox ") zu verweisen. Value = SV' geben Sie einen Versuch, I Ich musste viel in meinem letzten Web-Scraping-Projekt tun. –