WebBrowser má vlastnost Document, která je typu HtmlDocument. Na HtmlDocumentu budete muset nejdříve dané prvky lokalizovat. To uděláte pomocí GetElementById (v případě, že mají nastavený parametr "id"), nebo GetElementsByTagName a iterovat kolekcí výsledků podle nějakých zadaných kritérií. Každopádně budete závislý na struktuře dokumentu webové stránky a to může radikálně ohrozit stabilitu aplikace. Jako lepší řešení se mi jeví najít formulář, který chcete odesílat, zjistit všechna potřebná pole a odeslat pouze akci toho formuláře pomocí WebClientu nebo HttpWebRequestu. Pokud používáte Mozilla Firefox, můžete zjistit potřebná pole a adresu formáláře tak, že otevřete stránku s formuláře, zmáčknete CTRL+SHIFT+K, vyvoláte kontextové menu konzole a zvolíte Log Request and Response Bodies a pak formulář vyplníte a odešlete. Kliknutím na výsledek uvidíte všechno, co potřebujete. To samé jde i v Google Chrome, tam ale po načtení stránky dáte F12 a vyberete záložku Network. Jak to má Windows Internet Explorer či jiné proghlížeče, netuším. Ve zdrojovém kódu stránky naleznete formulář:
<form action="action.php" method="post">
<input type="text" name="value"/>
</form>
A sestavíte request. Pokud je metoda GET, stačí poskládat URL takto: action.php?value=něco. Pokud jde o POST, doporučuji použít třeba http://www.hurl.it/ a zkusit si tam napsat (v absolutním formátu, tedy http://... ) adresu té akce a přidat nějaké parametry k otestování. Pokud se Vám povede provést ten požadavek, pak bude stačit kód jako tento:
Using client As New System.Net.WebClient()
Var result = client.UploadString("http://example.com/action.php", "value=test&value2=test2")
End Using
V proměnné result bude zdrojový kód stránky, ze kterého může být možné určit úspěšnost akce (například vyhledáním nějakého elementu typu <span class="success">Hotovo.</span>, záleží na implementaci stránky). Také je vhodné poznamenat, že pro fomuláře se by v hlavičce ContentType mělo být následující:
Using client As New WebClient()
client.Headers(HttpRequestHeader.ContentType) = "application/x-www-form-urlencoded"
' client.Upload...
End Using
http://msdn.microsoft.com/en-us/library/... - HtmlDocument na MSDN http://www.hurl.it - nástroj k ladění webových API
|