Oppure

Loading
06/06/10 11:59
Corrupted
Salve,

ennesimo problema con il Web Browser..

Usando getAttribute e immagazzinandone il contenuto in una variabile ottengo l'errore:

run-time error 91 'Object variable or With Block variable not set'

Questo è il mio codice:

Dim documento As IHTMLDocument3
Dim elemento As IHTMLElement
Dim result As String

Set documento = WebBrowser1.Document
Set elemento = documento.getElementById("output")
result = elemento.getAttribute("value")


La riga che causa l'errore è questa:

result = elemento.getAttribute("value")



Sto cercando di prendere il valore dell'attributo 'value' da questo input con id 'output':

<input name="output" id="output" size="32" maxlength="32" value="6e6bc4e49dd477ebc98ef4046c067b5f">

Davvero non capisco.. 8-|
aaa
06/06/10 13:32
nessuno
Output oppure output ?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
06/06/10 14:38
Corrupted
Postato originariamente da nessuno:

Output oppure output ?


output, comunque non era questione di case-sensitive.

Ho notato che se divido il codice in due eventi differenti è tutto apposto, in quanto io grazie al primo bottone effettuo il login e grazie al secondo prelevo i dati dalla pagina.

Avrei bisogno di un metodo che mi permetta di aspettare la fine del caricamento della pagina dopo aver immesso i dati prima di prelevare il 'value'.

Ho provato già con questo codice:

Do Until WebBrowser1.ReadyState = READYSTATE_COMPLETE
DoEvents
Loop


Ma niente da fare, sembra non avere effetto..

Non mi conviene mettere le istruzioni nell'evento DocumentComplete perché non devo eseguire il caricamento di quella sola pagina, ma anche di altre successivamente e cercare dei dati anche in queste.

Ho provato anche con funzioni apposite per 'stoppare' l'esecuzione delle istruzioni, ma niente..

Come posso fare? 8-|


EDIT: Un modo l'ho trovato..

Dichiaro una variabile booleana chiamata blnBusy in un modulo, ogni volta che c'è un'istruzione che necessita che il caricamento venga completato io imposto blnBusy su True e inserisco il codice:

Do While blnBusy = True
DoEvents
Loop


E nell'evento 'DocumentComplete' del WebBrowser metto

blnBusy = False

p.s. non c'era bisogno di scrivere in grassetto
Ultima modifica effettuata da GrG 06/06/10 16:01
aaa