soritose
Goto Top

Webbrowser onClick auswälen

hallo

ich bin neu im vb und habe noch nicht fiel geschafft

und habe da mal eine frage an euch

also ich habe mir was geschrieben was ein Webbrowser bot werden soll
so weit geht auch alles jest habe ich ein kleines Problem

ich muss ein Link klicken aber den kann ich nicht so einfach bestätigen den der Link sieht so aus

<a onclick="document.getElementById('add2').style.display='';return false;" href="#">+add one more</a>

kann mir da jemand helfen

danke

Content-ID: 247964

Url: https://administrator.de/contentid/247964

Ausgedruckt am: 24.11.2024 um 09:11 Uhr

colinardo
colinardo 01.09.2014, aktualisiert am 02.09.2014 um 19:02:56 Uhr
Goto Top
Hallo soritose,
Ich vermute mal du weist nicht wie du den Link ansprechen sollst, weil er keine ID hat oder ? Deine Beschreibung ist leider etwas uneindeutig, aber ich gehe einfach mal davon aus das dies so ist.
Für diesen Fall gibt es die Methode getElementsByTagName über die du mit einer Schleife iterierst und anhand des Inhalts entscheidest ob der Link angeklickt werden soll oder nicht.
Beispiel:
dim link, links,ie
Set ie = CreateObject("InternetExplorer.Application")  
ie.Visible = True
ie.Navigate "C:\temp\demo.html"  
Set links = ie.Document.getElementsByTagName("a")  
If Not links Is Nothing Then
	For Each link In links
		If link.innerHTML = "+add one more" Then  
			link.click
			Exit For
		End If 
	Next
End If
Set ie = Nothing
Set links = Nothing
und das dazu passende Beispiel-HTML-Dokument:
<!DOCTYPE HTML>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
	<title>HTML Dokument</title>
</head>                                         
<body>       
<a href="#">Ich bin Link 1</a>       
<a href="#">Ich bin Link 2</a>       
<a href="#">Ich bin Link 3</a>  
<a onclick="alert('Dein Herr und Meister hat den Link geklickt');" href="#">+add one more</a>  
<div id="add2">BlaBlaBlaBla</div>  
</body> 
</html>
Alternativ lässt sich der Link auch durch seine Absolute Position im HTML-Dokument ansprechen. Wenn es z.B wie hier im Beispiel der 4te Link ist, könnte man Ihn auch direkt ohne FOR-Schleife so ansprechen:
ie.Document.getElementsByTagName("a")(3).click
3 deshalb, da das Array 0-basierend ist

Grüße Uwe
soritose
soritose 04.09.2014 um 17:22:13 Uhr
Goto Top
danke für die Antwort
leider bekomme ich da eine Fehler Meldung

aus das macht Visual basic 2010


WebBrowser1.Document.getElementsByTagName("a")(3).click


das


WebBrowser1.Document.getElementsByTagName("a")(3).click()


und
diese Meldung

Fehler 1 "Public Event Click(sender As Object, e As System.Windows.Forms.HtmlElementEventArgs)" ist ein Ereignis und kann nicht direkt aufgerufen werden. Verwenden Sie eine RaiseEvent-Anweisung, um ein Ereignis aufzurufen. C:\WindowsApplication1\WindowsApplication1\Form1.vb 37 9 auto-poster


ach so ich habe im Tool ein WebBrowser eingebaut und darüber soll alles laufen
colinardo
colinardo 04.09.2014 aktualisiert um 17:31:32 Uhr
Goto Top
junge du hast das in der Kategorie VBA gepostet !!
colinardo
colinardo 04.09.2014 aktualisiert um 17:45:39 Uhr
Goto Top
in VB.Net wird daraus folgendes:
WebBrowser1.Document.GetElementsByTagName("a")(3).InvokeMember("click")
Grüße Uwe
soritose
soritose 04.09.2014 um 17:44:24 Uhr
Goto Top
ups sory werde es glich mal richtig machen