Dim d As IHTMLDocument
Set d = WebBrowser1.Document
d.getElementById("nomecampo").Value = "abcd"
se invece voglio prendere un valore che si trova in un tag html e scriverlo
in una variabile, come devo fare?
Non conosco il webrowser .. ma prova a vedere come ho fatto io
con google e InternetExplorer.application
stext1 = objIE.document.all.q.Value
Msgbox stext1
tutto qui :
http://snipurl.com/pn6g
scarica questo che ti puo esere utile :
http://www.filegone.com/o5ok
PS:
come detto sempra simile prova con un :
stext1 = d.getElementById("nomecampo").Value
Msgbox stext1
--
Fosco
con le soluzioni che mi hai dato sopra non sono riuscito ad ottenere ciň che
mi serviva:-(
Attualmente per riempire alcuni campi in pagine web uso
Dim d As IHTMLDocument
Set d = WebBrowser1.Document
d.getElementById("nomecampo").Value = "abcd"
Ora invece voglio prelevare delle info da questo tag<div class="txtbig">
Testo:
<b>Valore</b>
</div>'Testo' č il label, mentre 'Valore' č l'informazione che a me
interessa mettere in una textbox e usando quanto mi hai scritto sopra mi da
errore, perchč non trova niente
NON ho mai usato il webrowser e neanche mi e' "simpatico" lo scripting
di pagine web .. ho solo usato l'essenziale che ogni tanto mi serviva senza
approfondire
Inanzitutto bisogna capire se vuoi adoperare ESCLUSIVAMENTE Visual Basic
o se ti andrebbero bene anche soluzioni diverse
Se non e' un segreto sarebbe anche utile il link con quello che esattamente
vuoi ottenere
cosi sulla carta e facendolo con internetexplorer.application
lo farei come ti ho gia' mostrato con google
questo e' l'esempio in vbs che mi e' piu facile :
Set objIE = CreateObject("InternetExplorer.application")
objIE.Visible = True
objIE.Navigate "http://google.it/"
Do While objIE.Busy = True
WScript.Sleep 50
Loop
msgbox "metti qualcosa nella barra ricerca"
WScript.Sleep 5000 ' metti un mome qualsiasi nella barra di ricerca
stext1 = objIE.document.all.q.Value
Msgbox stext1
' lancialo metti per esempio CIAO nella barra e vedi cosa restituisce
' il webrowser sembra simile
' come vedi sopra quello che a noi serve e' Q di qui prenderemo la value
qiando hai capito questo concetto poi puoi fare lo stesso
scarica e lancia questo : (lasciaci il google che c'e' gia')
http://www.filegone.com/o5ok
nell'ultima pagina web che si aprira' vedrai proprio la struttura che c'e'
anche q : esempio VB come detto qui NON ho la possibilita di
provarlo e i messagebox potrebbero comportarsi in maniera strana
ma cosi puoi provare direttamente copiando TUTTO su un form VB
e capendo il concetto di tutto :
Private Declare Sub Sleep Lib "kernel32" _
(ByVal dwMilliseconds As Long)
Private Sub Form_Load()
Dim objIE As Object
Set objIE = CreateObject("InternetExplorer.application")
objIE.Visible = True
objIE.Navigate "http://google.it/"
Do While objIE.Busy = True
Sleep (50)
Loop
Sleep (1000)
MsgBox "metti qualcosa nella barra ricerca"
Debug.Print "metti qualcosa nella barra ricerca"
Sleep (5000) ' metti un nome nella barra di ricerca
'procedura mista name/index
stext1 = objIE.document.Forms.Item(0).q.Value
''''' 'stext2 = objIE.document.forms.form.q.Value
' stessa procedura con tutto index
stext2 = objIE.document.Forms.Item(0).Item(1).Value
'TUTTO name
' come vedi dalla prima pagina risultanti col wowww.exe il Name
' del form che ci interessa e' F per qui :
stext3 = objIE.document.All.f.q.Value
MsgBox stext1
MsgBox stext2
MsgBox stext3
End Sub
'qui c'e un esempio col webrowser
http://www.swissdelphicenter.ch/torry/showcode.php?id=1847
--
Fosco
' stesso esempio in VBS se quello VB non dovesse funzionare :
Set objIE = CreateObject("InternetExplorer.application")
objIE.Visible = True
objIE.Navigate "http://google.it/"
Do While objIE.Busy = True
WScript.Sleep 50
Loop
WScript.Sleep 1000
msgbox "NON fare niente clicca SOLO su OK"
WScript.Sleep 1000
' setto la value di >>>>>> Q
objIE.document.forms.item(0).q.Value="Ciao"
WScript.Sleep 2000 ' NON fare niente
'procedura mista ByName/ByIndex
stext1 = objIE.document.forms.item(0).q.Value
' stessa procedura con tutto index
stext2 = objIE.document.forms.item(0).item(1).Value
'TUTTO name
' come vedi dalla prima pagina risultanti col wowww.exe il Name
' del form che ci interessa e' F per qui :
stext3 = objIE.document.all.f.q.Value
Msgbox " Procedura Mista " & stext1
Msgbox "TUTTO By Inex " & stext2
msgbox "TUTTO By Name " & stext3
WScript.Sleep 2000
Msgbox "Clicco su Cerca NON fare niente"
objIE.document.all.btnG.Click
'Copia incolla su notepad e salva con estensione .vbs
'tutti i file (*.*) poi ci clicchi sopra. (per esempio Test.vbs)
'se ti da' errore disattiva l'antivirus
--
Fosco
Va bene qualsiasi cosa, anche se preferisco VB, in quanto VBS non so ancora
bene come inserirlo
> Se non e' un segreto sarebbe anche utile il link con quello che
> esattamente
> vuoi ottenere
> cosi sulla carta e facendolo con internetexplorer.application
> lo farei come ti ho gia' mostrato con google
A me interessa potermi loggare alla mia banca, cosa che ho fatto, e
recuperare per esempio il saldo
Perņ al momento la prova la sto facendo per esempio con il sito della Tre
per sapere il credito della mia sim, in quanto ho visto che l'htm delle
pagine sono simili, anche se alla fine capito bene il meccanismo poi il
discorso lo si puņ estendere ad altre pagine simili
L'esempio in VB non funziona cmq
NON FUNZIONA non e' un argomento valido .. si spiega anche
cosa e come .. cominque l'ho appena provato e funziona
Ho riletto tutto il thred il concetto e gli strumenti per farlo te li ho
dati .. adesso devi impegnarti ad usarli tu il Real Mode
Su alcuni siti (la banca) potrebbero esserci maggiori difficolta sia
per privacy che magari perche' il sito e' https
--
Fosco
se vuoi continuare la discusiione vai su it.test news:it.test ed accodati
al thread webrowser
http://snipurl.com/prk3
--
Fosco
Non puoi.
Semplicemente, siccome il DIV non ha un attributo ID non puoi trovarlo con
la getElementById.
Se la pagina in questione non cambia molto spesso, la cosa piu' semplice che
puoi fare e':
- aprire la pagina con il notepad
- trovare un qualsiasi tag che abbia l'ID od il Name, possibilmente vicina
al tag che ti interessa.
- usare i metodi nextsibling, previoussibling, etc. per definire un percorso
che ti porti dal tag con l'id al tag che vuoi recuperare.
Grazie mille
mi potresti dire come posso prendere tutta la pagina html, metterla in un
notepad e ricercare una stringa specifica?
Grazie in anticipo
A mano?
mi sono espresso male
a me interessa caricare una pagina
prendere il codice html, ed eseguire una ricerca se esiste una sottostringa,
il tutto in esecuzione dell'applicazione
Il modo piu veloce č usare un controllo internet transfer a cui fai aprire
la pagina, salvandoti/parsandoti il risultato
es
Text1.Text = Inet1.OpenURL("www.google.it")
Ciao Alex