Logowanie do strony (Gecko)

Logowanie do strony (Gecko)
MA
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 2 lata
  • Postów:75
0

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

Kopiuj
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''

mariano901229
  • Rejestracja:ponad 10 lat
  • Ostatnio:8 miesięcy
  • Postów:597
0

No GeckoElementCollection nie ma takiej metody jak GetElementsByName.

MA
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 2 lata
  • Postów:75
0

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

mariano901229
  • Rejestracja:ponad 10 lat
  • Ostatnio:8 miesięcy
  • Postów:597
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.

Ktos
Moderator
  • Rejestracja:prawie 23 lata
  • Ostatnio:około godziny
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

MA
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 2 lata
  • Postów:75
0

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

Kopiuj
<input type="text" name="usernames" placeholder="Username" class="form-control" autocomplete="false">
DC
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 2 lata
  • Postów:28
1
Kopiuj
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.