Gå til innhold

Visual Basic 2008, Hjelp med Form Input


Anbefalte innlegg

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
Videoannonse
Annonse
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
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

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? :p

Endret av InjB
Lenke til kommentar

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
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 av aadnk
Lenke til kommentar

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 av xatic
Lenke til kommentar
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
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 av aadnk
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...