LeifOlav Skrevet 18. juli 2007 Del Skrevet 18. juli 2007 Hei. Holder på å lager mitt eget program, og har komt over ett problem nå. Jeg har sagt at visual basic skal sette inn tekst i en tekstbox på ei webside, men det er ikke alltid den textboxen er "tilgjengelig" på den siden. WebBrowser1.Document.All("o").SetAttribute("value", TextBox1.Text) 'setter inn tekst i "boksen" Dette er koden jeg brukte. Når visual basic leter etter denne textboxen til å sette inn teksten og ikke finner den, lukkes programmet automatisk. Hva kan jeg gjøre for å unngå dette, og få programmet til å heller prøve å gjøre det omigjen hvert f.eks 2 sekund? Mvh. Leif Lenke til kommentar
Martin-Vb Skrevet 18. juli 2007 Del Skrevet 18. juli 2007 (endret) Sikker på at du har riktig id på boxen? Ellers så er du på feil side, så når det går blir du linka et annet sted? dette problemet har jeg også med nordic mafia der må jeg logge ut først. Endret 18. juli 2007 av Martin-Vb Lenke til kommentar
LeifOlav Skrevet 18. juli 2007 Forfatter Del Skrevet 18. juli 2007 name="o" Ja jeg er sikker på at det er riktig id på boxen Er på riktig side når jeg prøver. Når visual basic skal sette inn teksten i boksen lukker bare programmet seg. Det jeg vil skal skje er at VB prøver å sette inn teksten i boksen helt til det går liksom. Sånn at når den tekstboxen kommer så blir teksten satt inn av VB og finito Lenke til kommentar
Martin-Vb Skrevet 18. juli 2007 Del Skrevet 18. juli 2007 (endret) dim afor a = 1 to 5 webbrowser1.document.all("o").setattribute("value",textbox1.text) next if webbrowser1.document.all("click").invokemember("click") then for a = 5 to 5 end if har ingen garanti på at dette skal virke men du kan prøve. hvis ikke så kan du prøve og flytte next under end if hvis du det ikke går på fem forsåk kan du prøve else dim afor a = 1 to 5 as string webbrowser1.document.all("o").setattribute("value",textbox1.text) next if webbrowser1.document.all("click").invokemember("click") then for a = 5 to 5 else for a = 1 to 5 end if next next Endret 18. juli 2007 av Martin-Vb Lenke til kommentar
LeifOlav Skrevet 18. juli 2007 Forfatter Del Skrevet 18. juli 2007 Ser ikke ut til å funke.. Må vell være en lettere måte? Lenke til kommentar
LeifOlav Skrevet 19. juli 2007 Forfatter Del Skrevet 19. juli 2007 Sånnher ser problemet ut "etter" at programmet har lukka seg: Lenke til kommentar
Martin-Vb Skrevet 19. juli 2007 Del Skrevet 19. juli 2007 (endret) Hvis du ser teksten komme inn i boxen kan det ha noe med comboboxen. da jeg ga deg koden kunne ikke jeg idene så det står fortsatt combo i comboxen,kan det være feil? kan jeg få link til sida? Endret 19. juli 2007 av Martin-Vb Lenke til kommentar
j000rn Skrevet 19. juli 2007 Del Skrevet 19. juli 2007 (endret) try / catch kan være greit å lære seg. for løkker også. Begge deler er veldig elementært og finne i alle tutorials for VB.Net. Endret 19. juli 2007 av jorn79 Lenke til kommentar
LeifOlav Skrevet 19. juli 2007 Forfatter Del Skrevet 19. juli 2007 try / catch kan være greit å lære seg.for løkker også. Begge deler er veldig elementært og finne i alle tutorials for VB.Net. 9101034[/snapback] Takk jorn Skal prøve å lære meg litt av try og catch da Lenke til kommentar
backup Skrevet 19. juli 2007 Del Skrevet 19. juli 2007 Feilmeldinga du får kan iallfall komme av at du er for rask på labben når du klikker, fordi websiden ikke er kommet endelig inn i browser eller fordi som allerede nevnt her, id'en som søkes ikke finnes på websiden. Her er et eksempel på hvordan man eventuelt kan takle dette: Sjekk at websiden er i browser: Private Sub WebBrowser1_ProgressChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserProgressChangedEventArgs) Handles WebBrowser1.ProgressChanged If WebBrowserReadyState.Complete Then Label1.text = "Complete" End Sub Når Label1.text får verdien Complete, kan du trykke på knappen som setter inn data på websiden. Sjekk at id'en er på websiden: Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim i For i = 0 To (WebBrowser1.Document.All.Count - 1) If WebBrowser1.Document.All.Item(i).Name = "o" Then WebBrowser1.Document.All("o").SetAttribute("value", TextBox1.Text) End If Next End Sub Lenke til kommentar
LeifOlav Skrevet 19. juli 2007 Forfatter Del Skrevet 19. juli 2007 Tusen hjertelig takk backup Hvordan kan jeg få VB til å gjenta prosessen helt til den finner det den leter etter? Altså oppdatere siden og søke på nytt helt til programmet klarer å sette inn det jeg vil i tekstboksen? Er det mulig å lage en label som sier at VB den ikke fant det den lette etter? Sorry for maset Men har trossalt lært meg mye nytt i det siste nå takket være dere Lenke til kommentar
backup Skrevet 19. juli 2007 Del Skrevet 19. juli 2007 (endret) Her har du noe som kanskje kan brukes: Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Dim i, key as string key = TextBox2.Text For i = 0 To (WebBrowser1.Document.All.Count - 1) If WebBrowser1.Document.All.Item(i).Name = key Then WebBrowser1.Document.All(key).SetAttribute("value", TextBox1.Text) Label2.Text = "Yes, found" Exit Sub End If Next Label2.Text = "Not found" End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Timer1.Interval = 1000 Timer1.Enabled = True End Sub Sett en timer1 kontroll på formen, en textbox2 kontroll og en button3 kontroll. I textbox2 skriver du inn id'en du vil søke på. Så klikker du button3 og det hele er i gang. Label2 gir found/not found. Tast inn nye verdier i textbox1 og textbox2 og det hele går automatisk hele tiden. Hvis du stoppe det hele, sett inn en button4 der du legger inn: timer1.enabled = false. For å starte igjen, klikk button3. Husk først å sjekke at en webside er helt kommet inn webbrowser1. Endret 19. juli 2007 av backup Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå