Avatar billede contici Nybegynder
25. juli 2012 - 16:44 Der er 5 kommentarer og
1 løsning

Styring af Internet Explorer fra VBA virker ikke hver gang

Hej,

Jeg har lavet en meget enkelt VBA makro som skal åbne IE, gå ind på en hjemmeside, og logge ind. Men det går nogle gange galt inden den får skrevet brugernavnet. Jeg mistænker det er fordi den prøver at sætte brugernavnet ind i feltet, inden siden er færdig med at loade. Det underlige er bare at jeg har sat en "Doevents" løkke på:

Koden er følgende:

Sub test()

Dim ie As Object
Set ie = CreateObject("internetexplorer.application")

ie.Visible = True

ie.navigate "http://tvangsauktioner.dk/Login/"

While ie.busy
    DoEvents
Wend

ie.document.getElementById("ctl00$ctl00$cphBody$cph$UsernameTextBox").Value = "TEST"

end sub

Håber nogen kan hjælpe, da det er lidt mystisk.
Avatar billede jokkejensen Novice
25. juli 2012 - 17:32 #1
Mon ikke det skyldes sikkerhed, ellers ville jeg da passe på med at køre sådanne.

/J
Avatar billede contici Nybegynder
25. juli 2012 - 22:13 #2
Øhh jeg er ikke helt med hvad du mener? Det virker jo nogen gange. Ca to ud af tre gange.
Avatar billede jokkejensen Novice
26. juli 2012 - 13:33 #3
Så skyldes det nok at et ID ikke må bestå af $ tegn, leder du ikke efter :

ctl00_ctl00_cphBody_cph_UsernameTextBox

Eller jeg kan aldig forstå det har lykkedes dig at finde et element vha getelementbyid og dets navn.

/J
Avatar billede jokkejensen Novice
26. juli 2012 - 13:34 #4
og i stedet for "doEvents" prøv:

Application.Wait DateAdd("s", 1, Now)

/J
Avatar billede contici Nybegynder
26. juli 2012 - 15:06 #5
Jeg fandt ud af fra anden vej, at det er Doevents der åbenbart ikke altid virker som det skal.

Så har sat en wait på som du skriver. Bare ikke helt så fikst!

Omend jeg havde fundet svaret inden du svarede, så vil jeg gerne give point hvis du lægger svar!
Avatar billede jokkejensen Novice
27. juli 2012 - 08:18 #6
Jeg tror nu stadig ikke helt på at

"ie.document.getElementById("ctl00$ctl00$cphBody$cph$UsernameTextBox").Value = "TEST""

Vil ramme et ID der hedder
ctl00_ctl00_cphBody_cph_UsernameTextBox

Men så længe det virker :)

Tak for points.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester