Ich habe diese Situation, die ich ohne Glück zu lösen kämpfen. Ich verwende VBA in Excel, um zu einer Website zu navigieren. Auf dieser Website verwende ich VBA, um auf ein div mit ID id-01
zu klicken, was gut funktioniert. Klicken Sie auf das div#id-01
wird ein anderes div mit ID id-02
erzeugen, möchte ich auf dieses div klicken. Wie kann ich auf das div mit id-02
mit VBA klicken?VBA Klicken Sie auf dynamisch generierte Div mit ID
Set IE = CreateObject("InternetExplorer.Application")
'
'code to navigate to site and wait for site to load
'
'Get div#id-01 and click on it
Set first = IE.document.getElementById("id-01")
'click it
first.click
'The following code does not work because
Set second = IE.document.getElementById("id-02")
second.click
Vielleicht anstelle von Element-ID Sie [Tagname] verwenden könnte (https://msdn.microsoft.com/en-us/library/ms536439 (v = VS.85) .aspx)? Scheint so, als würde dies als "Kind" von id-01 behandelt werden, anstatt nur auf id-01 und dann auf id-02 zu klicken. – Sgdva
Nachdem die Seite fertig ist und bevor ich auf "div # id-01" klicke, gibt es kein ' div # id-02'. Ich denke, es würde nicht anders sein, wie du auf "div # id-01" als untergeordnetes Element von "div # id-01" beziehst oder es als Ziel-ID verwendest, weil das Objekt "ID.document" nicht über das Vorhandensein von 'aktualisiert wird div # id-02', wenn das Objekt über id-02 wüsste, hätte der obige Code funktionieren müssen. –
Mögliches Duplikat davon: http://stackoverflow.com/questions/11820548/is-there-a-way-in-vba-to-get-elements-produced-by-javascript. Der Hinweis lautet "Application.Wait Now + TimeSerial (0,0, x)" zwischen 'first.click' und' Set second = ... 'wobei' x' eine bestimmte Anzahl von Sekunden ist. –