C# Uzupełnianie pola tekstowego na stronie www


(Mimal9) #1

Witam. Chciałbym zrobić program który po włączeniu uzupełniał pole tekstowe na stronie internetowej np. login i hasło całość w c# najlepiej w win form. Ma ktoś pomysł jak to zrobić? :slight_smile: nie chodzi mi o gotowca tylko o to jak się dostać do tych pól tekstowych i jak coś do nich "wysłać" wiem że to dość trudne więc proszę o pomoc.


(Fizyda) #2

Zapoznaj się z działaniem protokołu http tam masz odpowiedzi na wszystkie Twoje pytania.


(kowgli) #3

W samym C# tego nie zrobisz. Albo musisz mieć dostęp do strony i zakodować to w JavaScript, albo zrobić dodatek do przeglądarki.


(mr-owl) #4

Witam,

 

Zobacz to:

 

https://social.msdn.microsoft.com/Forums/windows/en-US/802756a5-39e9-4028-ac92-a8ad524cc8b0/webbrowser-fill-in-form-fields?forum=winforms

 

Pozdrawiam,

 

mr-owl


(Fizyda) #5

Jak nie, jak tak? Wystarczy wysłać odpowiednie żądania get lub post. Nawet jak formularz ma zabezpieczenia przed XSS nie widzę przeszkody by pobrać stronę z formularzem i wysłać wszystkie pola formularza uzupełniając tylko te które są do uzupełnienia.

 

Ale żeby to zrobić trzeba znać protokół HTTP czyli to co podałem w pierwszym poście.


(slepcu) #6

są jeszcze rozwiązania takie jak Selenium WebDriver - szeroko używane do testów strony WWW; 

sam w ten sposób logowałem się do konta na Analizy.pl i sprawdzałem wyniki funduszy inwestycyjnych.


(Mimal9) #7

Dziękuję wszystkim za odpowiedź na pewno wykorzystam któreś rozwiązanie


(kowgli) #8

 

Pytanie nie dotyczyło tego jak wysłać żądanie na serwer, tylko jak wypełnić pole tekstowe, na poziomie strony WWW. Na zasadzie takiej jak działają menedżery haseł, automatycznie wypełniając pole z loginem i hasłem. Przynajmniej ja to tak zrozumiałem. Wysłać żądanie HTTP wiadomo że się da …


(Fizyda) #9

Gdyby tak było pytanie dotyczyłoby jak to zrobić w konkretnej przeglądarce. Rozszerzenia w przeglądarkach nie pisze się w C#, więc pytanie jak coś takiego zrobić w C# byłoby bezsensu. Oczywiście jeśli mówimy tutaj jak to zrobić w przeglądarce czyli stronie której wygląd został wygenerowany w jakimś programie.

Natomiast wypełnienie i wysłanie pól tekstowych w aplikacji webowej czy to w C# czy innym języku czy nawet w przeglądarce odbywa się tak samo - za pośrednictwem protokołu HTTP. Jedyna różnica jest taka że przeglądarka generuje i obsługuje interakcję z użytkownikiem przy pomocy interfejsu jakim jest wygenerowana strona internetowa.


(kowgli) #10

Powtarzam się, ale moim zdaniem pytanie nie dotyczyło tego o czym piszesz, a przynajmniej tak było sformułowane. 

Jeśli założymy twoją wersję, to też nie zawsze jest to takie banalne, bo każda dobrze zrobiona strona zabezpiecza się przed taką formą XSS - na zasadzie POST https://test.com/login user=abc password=xyz. Czy to przez tokeny wrzucane do ukrytych pól formularzy,  ciasteczka, czy też inne metody. Musiałbyś przynajmniej częściowo symulować działanie przeglądarki, analizując to co dostajesz po GET.


(slepcu) #11

hola… selenium jest napisane w ten sposób że gila go przeglądarka, jaką sobie wybierzemy taką będzie używał; Testowane - działa.