WebBrowser problem z logowaniem

0

Witam, próbuję zalogować się do sklepu internetowego (jako administrator - chciałbym zautomatyzować proces aktualizacji danych). Programowanie dopiero się uczę (poprzez pisanie programów które mogą mi się przydać). Mam taki oto kod:


public bool zaloguj(ref WebBrowser webBrowser1) {

            HtmlElement submitButton = null;

            //Otwieranie strony
            if (otworz_strone(webBrowser1) == false) return false;            

            //Przeszukiwanie elementow
            HtmlElementCollection elementy = null;

            try
            {
                elementy = webBrowser1.Document.GetElementsByTagName("input");
            }
            catch
            {
                MessageBox.Show("Element niepobrany");
            }                

            foreach (HtmlElement element in elementy)
            {                    
                switch (element.Name)
                {
                    case "name":
                        element.OuterText = UstawieniaProgramu.Default.Login;
                        break;

                    case "password":
                        element.InnerText = UstawieniaProgramu.Default.Haslo;
                        break;                        
                }
                if (element.GetAttribute("type") == "submit")
                {
                    submitButton = element;
                    object obj = submitButton.InvokeMember("click");
                    return true;
                }
            }
            return false;
        }

Dane do logowania wpisywane są prawidłowo, jednak problem z przyciskiem. Coś się dzieje, stron zostaje przeładowana, dane do logowania znikają otwiera się panel logowania i nic więcej. Czy kod jest prawidłowy?? Nie wiem czy dobrze obsługuję ciasteczka, a może po prostu na stronie jest więcej przycisków i używam złego??

z góry dziękuje za pomoc, nie wiem już co z tym zrobić ;/

1

Żeby powiedzieć co jest nie tak w 100% musielibyśmy mieć kod tamtej strony logowania, ale bez tego obstawiałbym, że na stronie jest więcej przycisków typu submit i Twój algorytm używa tego niewłaściwego. Poza tym wydajniej by było gdybyś używał nie WebBrowsera, ale wykorzystywałbyś przesyłanie danych POST.

0

Tego się tak nie robi. Użyj klasy WebClient.

0

A mógłbym prosić o jakiś przykład? Np logowania do poczty wp etc.

0

Na Google latwo znalezc, tutaj masz nawet niezle opisany WebClient: http://www.daveamenta.com/2008-05/c-webclient-usage/

0

A czy jest możliwość wyświetlania i wysyłania metod POST? Chciałbym widzieć co się dzieje :)

0

Pytasz o klasy HttpRequest i HttpResponse?

0

Tak, czy jeśli wyślę zapytanie to czy jest możliwe aby rezultat był w webbrowserze? Czy do logowania nie trzeba zwrócić uwagi także na ciasteczka??

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0