Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[VB] Wypełnienie pola w WebBrowser zmienną

Piotr__11 25 Lis 2010 11:32 1267 3
  • #1 25 Lis 2010 11:32
    Piotr__11
    Poziom 11  

    Witam.
    Mam następujące problemy :
    Potrzebuje kodu który wprowadzi do przeglądarki zawartej w Form1 w polu Loginu na danej stronie wybrany przeze mnie tekst(zmienną zdeklarowaną wcześniej).
    Pole które mnie interesuje Autofill nazywa (?:^username$).


    I druga mniej ważna sprawa : jak wywołać kliknięcie na przycisk na otwartej w webbrowser stronie ?
    Proszę Was o pomoc.

    0 3
  • Pomocny post
    #2 25 Lis 2010 18:02
    riodoro1
    Poziom 22  

    pierwsze będzie tak:

    Code:

            Dim element As String
            Dim wartosc As String
            WebBrowser1.Document.GetElementById(element).InnerText = wartosc


    id elementu, na nk id elementu logowania to "login_login"

    Code:

    <input type="text" name="login" onfocus="document.is_focused=true; return true;" id="login_login"/>


    musisz sam "wyjąć" je z kodu stronki.

    więc kod będzie wyglądał tak dla nk.pl:
    Code:

            Dim element As String = "login_login"
            Dim wartosc As String = "login w okienku"
            WebBrowser1.Document.GetElementById(element).InnerText = wartosc


    Co do drugiego problemu, nie rozwiązałem go (nie mogę teraz siedzieć przy komputerze) jednak może pomóc taki fragment który napisałem:

    Code:

     Dim elements As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("Input")

            For i As Integer = 1 To elements.Count
                     elements(i-1).InvokeMember("Click")
            Next


    Jednak jeżeli wystarczy się zalogować na stronie zazwyczaj wystarcza:
    Code:

     WebBrowser1.Document.Forms(0).InvokeMember("submit")


    Napisz co to za strona, będzie nam łatwiej.
    Mam nadzieję że naprowadziłem!

    1
  • #3 25 Lis 2010 21:31
    Piotr__11
    Poziom 11  

    Chodziło mi o stronę : http://mail.o2.pl/
    Wszystko działa jak należy id wyciągnąłem przez Firebug'a. Logowanie się także działa :) !

    Wielkie dzięki.

    Submit - też działa ;]
    Co do 2 części, hmm chciałbym konkretnie wcisnąć 'wyloguj' na poczcie.
    Przykładowe sprawne konto na o2 to :

    Code:
    L: juven8tur(malpa)o2.pl
    
    P: om368en
    Może się przyda


    Mam jeszcze jedno (chyba proste) pytanie:
    Otóż mój program podczas zamykania rzuca : [VB] Wypełnienie pola w WebBrowser zmienną
    Code:
     Nie mam pojęcia jak temu zapobiec :(- wiersz 53// nawet taki nie istnieje 
    
    Public Class Form1
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            WebBrowser1.Navigate("http://mail.o2.pl/")
            Dim b, g, f
            b = Len(TextBox1.Text)
            g = Replace(TextBox1.Text, "L: ", "")
            f = Replace(g, "P: ", "")
            TextBox1.Text = f
            ' Tekst oczyszczony z L: i P:
        End Sub

        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            Dim Login1Len, Pass1Len, MidLogin1, MidPass1
            Login1Len = Len(TextBox1.Lines(0))
            Pass1Len = Len(TextBox1.Lines(1))
            MidLogin1 = Mid(TextBox1.Lines(0), 1, Login1Len)
            MidPass1 = Mid(TextBox1.Lines(1), 1, Pass1Len)


            Dim element As String = "login"
            Dim wartosc As String = MidLogin1
            Dim element2 As String = "password"
            Dim wartosc2 As String = MidPass1
            WebBrowser1.Document.GetElementById(element).InnerText = wartosc
            WebBrowser1.Document.GetElementById(element2).InnerText = wartosc2
            WebBrowser1.Document.Forms(0).InvokeMember("submit")

        End Sub
    End Class

    0
  • Pomocny post
    #4 25 Lis 2010 22:30
    riodoro1
    Poziom 22  

    To jest błąd strony(stąd linijka 53), w edycji Formy, kliknij na Webbrowser i ustaw wartość "ScriptErrorsSuppressed" na "True" - Powinno pomóc

    Co do pierwszego to kod wylogowujący wygląda tak:

    Code:

    WebBrowser1.Document.GetElementById("Logout").InvokeMember("Click")


    szukaj zawsze id elementu(w tym przypadku podpatrzyłem id linku "Wyloguj" na górze strony), wtedy tylko "InvokeMember("Click")" i już masz zrobione, brak id komplikuje sprawę, ale i tak da się poradzić jakoś :D

    1