[VB.NET]Webbrowser Control Button ohne ID anklicken
Hey
Da ich keine lust mehr auf webrequest habe, hab ich versucht einen Bot mit Webbrowser Control zu coden. Nun weiß ich aber nicht, wie man einen Button anklickt, der keine ID besitzt.
Hier gehts nicht um dazulernen, das Problem ist in 99,99% aller Fälle dürfte es der Falsche Ansatz sein.
Sollte es ums reine Parsing gehen schau dir ein entsprechendes Framework an
z.b.
Wenn du was lernen willst, bau dir ne eigene Webrequest Klasse.
Du wirst am ende auf jedenfall mehr davon haben als wenn du weißt wie du um die drölfzig Probleme die die Browerscontrol so auslöst rumprogrammierst.
Private Function getImage(uri As [String]) As Image
Try
Dim myUri As New Uri("*******")
captchaID = uri
Dim request As HttpWebRequest = DirectCast(WebRequest.Create(New Uri("https://www.google.com/recaptcha/api/image?c=" & Convert.ToString(uri))), HttpWebRequest)
request.CookieContainer = cookieContainer
request.UserAgent = userAgent
'request.Proxy = proxy;
request.KeepAlive = True
request.Referer = myUri.ToString()
request.ContentType = "image/png"
request.Method = "GET"
request.Accept = "de-de,de;q=0.8,en-us;q=0.5,en;q=0.3"
Dim response As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)
Dim stream = response.GetResponseStream()
Return Image.FromStream(stream)
Catch e As System.Exception
Return Nothing
End Try
End Function
Public userAgent As [String] = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0"
Private cookieContainer As New CookieContainer()
Private Function [get](url As [String], referer As [String]) As [String]
Dim myUri As New Uri(url)
Dim request As HttpWebRequest = DirectCast(WebRequest.Create(myUri), HttpWebRequest)
request.CookieContainer = cookieContainer
request.UserAgent = userAgent
request.KeepAlive = True
request.Referer = referer
If proxy IsNot Nothing Then
request.Proxy = proxy
End If
Dim response As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)
For Each cookie As Cookie In response.Cookies
cookieContainer.Add(cookie)
Next
Dim stream = response.GetResponseStream()
Dim reader = New StreamReader(stream)
Return reader.ReadToEnd()
End Function
Private Function post(url As [String], referer As [String], postdata As [String], headers As [String]()) As [String]
Dim request As HttpWebRequest = DirectCast(WebRequest.Create(New Uri(url)), HttpWebRequest)
request.CookieContainer = cookieContainer
request.Method = "POST"
Dim data As Byte() = Encoding.ASCII.GetBytes(postdata)
request.ContentType = "application/x-www-form-urlencoded"
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
request.ContentLength = data.Length
request.UserAgent = userAgent
request.KeepAlive = True
request.Referer = referer
If proxy IsNot Nothing Then
request.Proxy = proxy
End If
request.ServicePoint.Expect100Continue = False
For Each s As [String] In headers
request.Headers.Add(s.Split("|"C)(0), s.Split("|"C)(1))
Next
Dim requestStream As Stream = request.GetRequestStream()
requestStream.Write(data, 0, data.Length)
requestStream.Close()
Dim response As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)
For Each cookie As Cookie In response.Cookies
cookieContainer.Add(cookie)
Next
Dim stream = response.GetResponseStream()
Dim reader = New StreamReader(stream)
Return reader.ReadToEnd()
End Function
Private Function post(url As [String], referer As [String], postdata As [String]) As [String]
Dim request As HttpWebRequest = DirectCast(WebRequest.Create(New Uri(url)), HttpWebRequest)
request.CookieContainer = cookieContainer
request.Method = "POST"
Dim data As Byte() = Encoding.ASCII.GetBytes(postdata)
request.ContentType = "application/x-www-form-urlencoded"
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
request.ContentLength = data.Length
request.UserAgent = userAgent
request.KeepAlive = True
request.Referer = referer
request.ServicePoint.Expect100Continue = False
Dim requestStream As Stream = request.GetRequestStream()
requestStream.Write(data, 0, data.Length)
requestStream.Close()
Dim response As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)
For Each cookie As Cookie In response.Cookies
cookieContainer.Add(cookie)
Next
Dim stream = response.GetResponseStream()
Dim reader = New StreamReader(stream)
Return reader.ReadToEnd()
End Function
Button ohne Id im Webbrowser anklicken 09/23/2013 - .NET Languages - 10 Replies Hallo, ich möchte gerne auf einer Website einen Button anklicken, eigentlich: Webbrowser1.Document.GetElementbyID(""). InvokeMember("click") aber Leider hat dieser Button keine Id, wie kann ich mein Problem anders lösen?
Achso und: ich möchte kein GetFromPoint benutzen, da der Button an verschiedenen stellen sein kann ....
[VB2010] Webbrowser Control <div> element anklicken 02/16/2013 - .NET Languages - 7 Replies Habe ein Problem mit meinen Webbrowser, unzwar möchte ich per button einen Javascript von der Seite aktivieren, leider komm ich nicht auf die richtige Spur :C
Hier ein Bild vom Java script:
http://www.bilder-hochladen.net/files/gjor-1n-66f 0.png
Code vom Button
<div class="button punish">Punish</div>
webbrowser control 02/04/2011 - General Coding - 0 Replies hey.
VB -->
ich habe folgenden link.
<a onclick="return Index.submit_login('server_de68');" href="#"><span class="world_button_active">Welt 68</span></a>
ich will den anklicken mit vb
wie kann ich den ansprechen? mit dem .links gehts es glaub ich nicht, weil die position des linkst oft anders ist.