Avatar billede flyver23 Nybegynder
29. januar 2007 - 09:15 Der er 15 kommentarer og
1 løsning

Script der kan udfylde felter automatisk

Hej.
Jeg er ved at lave en opgave hvor en hjemmeside loades i en browser. Når siden er loadet har jeg behov for at login feltet bliver udfyldt automatisk, da brugeren arbejder med en touchskærm uden tastatur. Så der kun skal trykkes på login knappen.

Kan man lave og afvikle et script på sin maskine der udfylder felterne. Jeg kan rette i kildekoden, så feltet er udfyldt, men når jeg loader den(falske side), vil serveren ikke acceptere siden..
Nogen gode ideer?
Vh flyver 23
Avatar billede melieha Nybegynder
29. januar 2007 - 09:22 #1
Jeg ved ikke helt om jeg misforstår noget, men kan du ikke bare bruge value="xxx"? Det burde da give det samme resultat som at lade et javscript eller lignende skrive ind :)
Avatar billede michael_stim Ekspert
29. januar 2007 - 09:26 #2
Hvorfor have en loginside, når de bliver udfyldt automatisk?
Avatar billede flyver23 Nybegynder
29. januar 2007 - 09:28 #3
Siden der loades er ikke en jeg har lavet. Det er login til et informationssystem, som kræver login.
Når jeg skriver kildekoden, mente jeg kildeteksten fra explorer, som er tilgængelig efter at siden er loadet.

Vh flyver23
Avatar billede michael_stim Ekspert
29. januar 2007 - 09:33 #4
Kan den bruger ikke bruge det skærmtastatur der er under tilbehør -> hjælp til handicappede og så bare vælge at gemme oplysningerne.
Avatar billede flyver23 Nybegynder
29. januar 2007 - 09:42 #5
Det er ikke muligt at gemme oplysningerne, da applikationen åbnes i en webbrowser som jeg selv har lavet i C#, for at undgå alle explorers genveje og andre muligheder. Brugeren må kun få adgang til denne bestemte hjemmeside.
Så et skærmtastatur der kun er tilgængeligt i en kort periode kunne være en løsning.
Avatar billede Slettet bruger
29. januar 2007 - 10:11 #6
Når det er en browser i C# kan du bruge DOM reference til at udfylde felterne.

Jeg er ikke inde i C#, men du kan prøve med noget i retning af:

browser.Document.All("UserId").value = "UserId"
browser.Document.All("Password").value = "Password"

hvor
browser = dit webbrowserobject
"UserId" = Name attributten på input-elementet for username
"Password" = Name attributten på input-elementet for password

Ellers google efter DOM reference til C#..

/1
Avatar billede flyver23 Nybegynder
29. januar 2007 - 11:25 #7
Jeps kvadratrodenaf1. Den ide er rigtig fin.
Dog ser koden ikke lige ud til at virke med det samme.
Kan ikke skrive . efter ("userID") Æv... Skal lave det på en anden måde.
Jeg søger lidt. Nu er jeg kommet lidt videre. Hvis nogen har fået det til at virke vil jeg gerne se et eksempel.
Avatar billede flyver23 Nybegynder
29. januar 2007 - 12:32 #8
Så kan jeg udfylde tekstfelterne med nedenstående kode.

HtmlElementCollection elementer;
            elementer = webBrowser1.Document.All;
            foreach (HtmlElement h in elementer)
            {
                if (h.Name == "login_username")
                {
                    h.InnerText = "mitusername";
                }
                if (h.Name == "secretkey")
                {
                    h.InnerText = "minkode";
                }
            }
Nogen der har ide til at aktivere "login" knappen/funktionen?
Vh flyver23
Avatar billede Slettet bruger
29. januar 2007 - 13:07 #9
Jeg kan bruge .click, når jeg laver det i VB.

Forudsat submitknappen kommer efter inputfelterne.

Du skal huske at teste på readystate - ellers vil siden ikke være hentet når scriptet bliver kørt, hvis serveren er belastet.

            elementer = webBrowser1.Document.All;
            foreach (HtmlElement h in elementer)
            {
                if (h.Name == "login_username")
                {
                    h.InnerText = "mitusername";
                }
                if (h.Name == "secretkey")
                {
                    h.InnerText = "minkode";
                }
                if (h.Name == "login")
                {
                    h.click;
                }
            }
Avatar billede flyver23 Nybegynder
29. januar 2007 - 13:20 #10
Jeg venter med at afvikle koden til siden er loadet helt. Ingen problem.
Jeg har desværre ikke nogen .click metode.. på mine html elementer.
Avatar billede Slettet bruger
29. januar 2007 - 13:28 #11
Hmm.. har du prøvet - Er det ikke et input/submit element?
Avatar billede olebole Juniormester
29. januar 2007 - 16:15 #12
<ole>

- men når IE forhåbentlig inden alt for længe begynder at understøtte XHTML, kan du hverken bruge 'Document.All' eller 'InnerText' - så det ville nok være mere fremtidssikret at bruge 'document.getElementById' og ligeledes standardiseret DOM til at indsætte tekst med  ;o)

/mvh
</bole>
Avatar billede Slettet bruger
30. januar 2007 - 08:06 #13
vel snarere getElementsByTagName, da det er formelementer.
Avatar billede flyver23 Nybegynder
30. januar 2007 - 08:27 #14
Jeps. Der er mange spændende muligheder. Den der løste mit problem kom fra kvadratrodenaf1, så hvis du smider et svar får du point.

Tak for hjælpen.
Vh flyver23
Avatar billede Slettet bruger
30. januar 2007 - 08:33 #15
Svar.

Men husk Oles pointe, hvis du engang får problemer med IE 7, 8, 9 eller 10 :P..
Avatar billede flyver23 Nybegynder
30. januar 2007 - 09:02 #16
Helt sikkert. Fremtidssikring er en klog ting.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester