Logowanie do strony (Gecko)

0

Witam, podpowie ktoś jak zrobić logowanie do strony za pomocą Gecko Web Browser? Oczywiście przez GetElementsByTagName bo nie ma id.

Dim elemlogin As GeckoElementCollection = GeckoWebBrowser1.Document.GetElementsByTagName("input")
        Dim geckocoll As GeckoElementCollection = elemlogin.GetElementsByName("username")
        For Each o As GeckoElement In geckocoll
            o.InnerHtml = TextBox1.Text
        Next

Tutaj wyrzuca mi błąd:
"GetElementsByName' is not a member of 'Skybound.Gecko.GeckoElementCollection''

0

No GeckoElementCollection nie ma takiej metody jak GetElementsByName.

0

To jak zrobić logowanie z polem loginu o tagu username?

0

Nie znam tej bibloteki/framework'a. Jednakże jeżeli pobrałeś sobie kolekcję elementów po jakimś tagu, to zgaduje, że jest to kolekcja obiektów patrząc po Twoim kodzie. Zatem ta klasa tych obiektów pewnie zawiera jakąś właściwość, która przechowuje id, nazwę etc. Po sprawdzeniu tego możesz wyszukać szukane pole.

0

A nie możesz zrobić GetElementsByName bezpośrednio na Document (który posiada taką metodę), a nie na kolekcji zwróconej przez GetElementsByTagName? Wtedy wystarczy tylko w wyniku GeckoWebBrowser1.Document.GetElementsByName("username") sprawdzać po kolei, czy element jest elementem input i sprawa z głowy.

Bo jak zobaczysz sobie źródła, to GeckoElementCollection w ogóle jest praktycznie równoznaczne z IEnumerable<GeckoElement>: https://bitbucket.org/geckofx/geckofx/src/f8e6e3dabe2cc3835796bc119b7b7d053f2c30c4/Skybound.Gecko/GeckoDom.cs?at=default&fileviewer=file-view-default#GeckoDom.cs-1003

0

A możesz dać przykład jak to sprawdzić na podstawie pola loginu? Ponieważ nie za bardzo znam się na GeckoFx

<input type="text" name="usernames" placeholder="Username" class="form-control" autocomplete="false">
1
Gecko.DOM.GeckoInputElement Username = new Gecko.DOM.GeckoInputElement(geckoWebBrowser1.Document.GetElementsByName("login")[0].DomObject);
            Username.Value = textBox1.Text;
            Gecko.DOM.GeckoInputElement Password = new Gecko.DOM.GeckoInputElement(geckoWebBrowser1.Document.GetElementsByName("hasło")[0].DomObject);
            Password.Value = textBox2.Text;
            Gecko.DOM.GeckoInputElement login = new Gecko.DOM.GeckoInputElement(geckoWebBrowser1.Document.GetElementsByName("submit")[0].DomObject);

w C# mam tak i działa. Przekonwertuj na VB.net i powinno działać u Ciebie.

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