xatic Skrevet 13. september 2008 Del Skrevet 13. september 2008 Hei. Jeg har over lengre tid jobbet med visual basic 6. Nå har jeg valgt og gå over til 2008 men har møtt et lite problem. Jeg tenkte jeg skulle oppgadere et av mine gammle programvarer men får det ikke til. Tanken er å skrive inn noe i en form og trykke "submit" for å logge meg inn via web funksjonen. I VB6 var dette veldig enkelt med denne koden, wb.Document.All("login").Value = Text1.Text wb.Document.All("passwd").Value = "f53456536js76344362343534df42343jsd" wb.Document.All("SI").Click Hvordan gjøres dette i Visual Basic 2008? Lenke til kommentar
InjB Skrevet 13. september 2008 Del Skrevet 13. september 2008 (endret) wb.Document.All("login").SetAttribute("value", Text1.Text) wb.Document.All("pass").SetAttribute("value", "f53456536js76344362343534df42343jsd") wb.Document.All("SI").InvokeMember("click") Endret 13. september 2008 av InjB Lenke til kommentar
xatic Skrevet 13. september 2008 Forfatter Del Skrevet 13. september 2008 wb.Document.All("login").SetAttribute("value", Text1.Text) wb.Document.All("pass").SetAttribute("value", "f53456536js76344362343534df42343jsd") wb.Document.All("SI").InvokeMember("click") Takker, dettefunket som smør. Bare et lite spørsmål, er det mulig å "trykke" på en submit knapp når den ikke har noe oppgitt navn? (Name="Knall") etc. å Hvordan er det mulig å trykke på en link kun via en knapp? Lenke til kommentar
InjB Skrevet 13. september 2008 Del Skrevet 13. september 2008 Skjønte ikke helt det siste spørsmålet der, men du kan prøve med getelementbytag. Lenke til kommentar
xatic Skrevet 13. september 2008 Forfatter Del Skrevet 13. september 2008 Skjønte ikke helt det siste spørsmålet der, men du kan prøve med getelementbytag. Ja, kan forklare på nytt, jeg har en submit knapp uten navn, dvs den ser slik ut, <input value="Enter" style="width: 100px;" class="button" onclick="window.location='login.php';" type="button"> Her har jeg jo ikke noe navn og referere til? Hva kan jeg gjøre da? Lenke til kommentar
InjB Skrevet 13. september 2008 Del Skrevet 13. september 2008 (endret) Kan du ikke bare navigere til siden der hvis du trykker på knappen er? Hvis ikke det er noe du skal fylle inn før da... Hvis ikke finnes det faktisk en GetElementFromPoint method. Er sikkert en mye enklere måte og gjøre det på enn dette, kan ikke dette så godt... Det er da heller ingen vits å quote når meldingen jeg skrev er rett over? Endret 13. september 2008 av InjB Lenke til kommentar
xatic Skrevet 13. september 2008 Forfatter Del Skrevet 13. september 2008 lol, kom borti ^^ Nei, jeg ønsker gjerne at jeg kommer rett inn på siden ved å trykke "go" f.eks. Slik at jeg slipper å fylle inn brukernavn og passord. Jeg gjør det jo mest for læringens skyld men. Har ikke satt meg så mye inn i web funksjonene enda. Lenke til kommentar
aadnk Skrevet 14. september 2008 Del Skrevet 14. september 2008 (endret) Her har jeg jo ikke noe navn og referere til? Hva kan jeg gjøre da?Da må du søke etter elementet ved å sammenlikne med dens karakteriske/unike verdier - eksempelvis dens verdi-attributt: For Each Element As HtmlElement In WebBrowser1.Document.All ' En kan også bruke GetElementsByTagName If Element.TagName = "input" AndAlso Element.GetAttribute("value") = "Enter" Then Element.InvokeMember("click") Exit For End If Next Endret 14. september 2008 av aadnk Lenke til kommentar
xatic Skrevet 14. september 2008 Forfatter Del Skrevet 14. september 2008 (endret) Takker for svar men det ser ikke ut til å fungere. VB Godtar koden men når jeg prøver å skrive inn feil/rett brukernavn og trykker "ok" skjer det ingenting i browseren. Ja, den fyller inn både brukernavn og passord men det ser ikke ut som at den "klikker" på submit knappen, noe idè om hvorfor? Form (HTML) <form method="post" name="login" action="login.php"> Bruker:<br /> <input type="text" name="bruker" value="" style="width:130px;"><br /> Passord:<br /> <input type="password" name="password" style="width:130px;" maxlength="12"><br /> <input type="submit" value="enter" style="width:130px;" class="button"> </form> VB (Code) Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click WebBrowser1.Document.All("bruker").SetAttribute("Value", txtBrukernavn.Text) WebBrowser1.Document.All("password").SetAttribute("Value", txtPassord.Text) For Each Element As HtmlElement In WebBrowser1.Document.All ' En kan også bruke GetElementsByTagName If Element.TagName = "input" AndAlso Element.GetAttribute("value") = "enter" Then Element.InvokeMember("click") Exit For End If Next End Sub Endret 14. september 2008 av xatic Lenke til kommentar
Icaro2 Skrevet 14. september 2008 Del Skrevet 14. september 2008 Takker for svar men det ser ikke ut til å fungere. VB Godtar koden men når jeg prøver å skrive inn feil/rett brukernavn og trykker "ok" skjer det ingenting i browseren. Ja, den fyller inn både brukernavn og passord men det ser ikke ut som at den "klikker" på submit knappen, noe idè om hvorfor? VB (Code) Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click WebBrowser1.Document.All("bruker").SetAttribute("Value", txtBrukernavn.Text) WebBrowser1.Document.All("password").SetAttribute("Value", txtPassord.Text) For Each Element As HtmlElement In WebBrowser1.Document.All ' En kan også bruke GetElementsByTagName If Element.TagName = "input" AndAlso Element.GetAttribute("value") = "enter" Then Element.InvokeMember("click") Exit For End If Next End Sub Hei Har du prøvd å sette If Element.TagName = "submit" istedenfor "input" I html koden så ser det ut til at det er denne som sender deg videre Lenke til kommentar
xatic Skrevet 14. september 2008 Forfatter Del Skrevet 14. september 2008 ja, har prøvd flere kombinasjoner men den nekter Lenke til kommentar
aadnk Skrevet 15. september 2008 Del Skrevet 15. september 2008 (endret) ja, har prøvd flere kombinasjoner men den nekter Den riktige kombinasjonen er visst store bokstaver. TagName returnerer aldri noe annet, ser det ut til: For Each Element As HtmlElement In WebBrowser1.Document.All If Element.TagName = "INPUT" AndAlso Element.GetAttribute("value") = "enter" Then Element.InvokeMember("click") Exit For End If Next Endret 15. september 2008 av aadnk Lenke til kommentar
xatic Skrevet 15. september 2008 Forfatter Del Skrevet 15. september 2008 Takker, aadnk. Dette virker 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å