PuffyTroll Skrevet 20. juli 2010 Del Skrevet 20. juli 2010 (endret) Hei. Jeg er helt ny med programmering, og programmerer i Visual C# 2010 Jeg ønsker og lage en bot som kan fylle ut skjemaer på internett. Jeg har fått til alt unntatt radioknapper. Jeg klarer ikke å få den til å velge rett knapp. På siden som skal fylles ut er det 8 radioknapper som alle heter det samme, men de har forskjellige "values". Slik er det jeg har prøvd, men programmet crasher når jeg trykker på knappen som skal velge radioknappen. wb1.Document.All.GetElementsByName("navn")[8].SetAttribute("checked", "true"); slik se den koden fra siden hentet med HttpFox. Parameter: Value: navn 8 Takk for all hjelp Endret 20. juli 2010 av PuffyTroll Lenke til kommentar
PuffyTroll Skrevet 21. juli 2010 Forfatter Del Skrevet 21. juli 2010 Ingen som vet?? her er htlm koden fra siden jeg vil at programmet skal trykke på knappene: </tr> <tr> <td class="kn1"> <input name="age" value="7" type="radio" /> </td> <td class="kn1">1 %</td> </tr> <tr> <td class="kn1"> <input name="age" value="8" type="radio" /> </td> <td class="kn1">96 %</td> </tr> <tr> <td colspan="2" class="atd"><input class="kn1" name="utfor" value="Utfør! " type="submit" /></td> Når jeg bruker kommandoen wb1.Document.All.GetElementsByName("age")[8].SetAttribute("checked", "true"); å debugger programmet får jeg en feil: ArgumentOutOfRange Exception was unhandled! Value of '8' is not valid for 'index'. 'index' should be between 0 and 1. Parameter name: index Takk Lenke til kommentar
oelbox Skrevet 22. juli 2010 Del Skrevet 22. juli 2010 Når jeg bruker kommandoen wb1.Document.All.GetElementsByName("age")[8].SetAttribute("checked", "true"); å debugger programmet får jeg en feil: ArgumentOutOfRange Exception was unhandled! Value of '8' is not valid for 'index'. 'index' should be between 0 and 1. Parameter name: index Takk Problemet ditt er at du forsøker å lese fra index 8. Denne eksisterer ikke. WebBrowser.Document.All gir deg tilgang til WebBrowsers HtmlElementCollection, som er en samling av HtmlElements. GetElementsByName gir deg en HtmlElementCollection som inneholder alle elementer med navnet du gir som input parameter til funksjonen. Jeg antar at grunnen til at du benytter [8] er fordi du skal ha tak i elementet som har value="8", men det kan du altså ikke gjøre på den måten. Under er litt kode som prøver å gjøre det du vil, om det virker aner jeg ikke ettersom jeg ikke har mulighet til å teste det. HtmlElementCollection col = wb1.Document.All.GetElementsByName("age"); foreach (HtmlElement elem in col) { string s = elem.GetAttribute("value"); if (s == "8") elem.SetAttribute("checked", "true"); } Håper det er litt til hjelp hvertfall. Lenke til kommentar
Wanghattan Skrevet 29. juli 2010 Del Skrevet 29. juli 2010 Prøv dette: wb1.document.All.GetElementsByName("navn")[0].SetAttribute(" checked", "true"); Du trenger ikke å skrive [8] fordi valuen har det. 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å