Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Skybound.Gecko Mach mir Probleme bei einigen Befehlen

Frage Entwicklung Visual Studio

Mitglied: soritose

soritose (Level 1) - Jetzt verbinden

08.09.2014 um 21:45 Uhr, 2383 Aufrufe, 13 Kommentare

Ich bin noch neu und habe also noch nicht fiel Erfahrung

vorher habet ich bei Visual Basic 2010 das mit den internen WebBrowser1 gemacht aber der nimmt ja immer den IE das wollen ja fiele wie ich auch selber nicht benutzen

des wegen habe ich mir das Skybound.Gecko besorgt und eingebaut nur jest gehen einige befehle nicht mehr

wie zum Beispiel

GeckoWebBrowser1.Document.GetElementsByTagName("a")(44).InvokeMember("click") 
 
Fehler 11 Der Wert vom Typ "String" kann nicht in "Skybound.Gecko.GeckoNode" konvertiert werden.

Do While GeckoWebBrowser1.ReadyState <> WebBrowserReadyState.Complete 
 
            Application.DoEvents() 
 
 
        Loop
Fehler 12 "ReadyState" ist kein Member von "Skybound.Gecko.GeckoWebBrowser"

        GeckoWebBrowser1.Document.Forms(1).InvokeMember("submit")
Fehler 13 "Forms" ist kein Member von "Skybound.Gecko.GeckoDocument".

Mitglied: colinardo
09.09.2014, aktualisiert um 12:02 Uhr
Moin soritose,
naja so einfach migrieren kannst du das nicht. Das ist ja eine andere Bibliothek die eben anders gehandhabt werden will.

Also als erstes besorge dir die aktuellste Version von GeckoFX hier:
https://bitbucket.org/geckofx/geckofx-29.0/downloads

Und den dazu passenden XULRunner:
http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/29.0b9/runtim ...

den alten Skybound nimmst du als erstes aus deinem Projekt wieder raus und bindest den neuen ein. In den alten Versionen fehlen nämlich so einige Dinge.

Für die neunen Gecko-Versionen bindest du das Control wie beim alten in deine Toolbox ein, und zusätzlich fügst du unter Referenzen in deinem Projekt die Geckofx-Core.dll hinzu.

wenn du das gemacht hast, lauten die Befehle wie folgt:
GeckoWebBrowser1.Document.GetElementsByTagName("a")(44).Click()
Der Browser hat selber EventHandler die feuern wenn das Dokument geladen ist:
01.
Private Sub GeckoWebBrowser1_DOMContentLoaded(sender As Object, e As Gecko.DomEventArgs) Handles GeckoWebBrowser1.DOMContentLoaded 
02.
        GeckoWebBrowser1.Document.GetElementsByTagName("a")(44).Click() 
03.
End Sub
Und zu guter letzt das übermitteln einer Form:
CType(GeckoWebbrowser1.Document.Forms(1), Gecko.DOM.GeckoFormElement).submit()
Grüße Uwe
Bitte warten ..
Mitglied: soritose
10.09.2014 um 13:47 Uhr
danke das mit die neue version gegeben hast

bis jest bekomme ich auch alles hin nur das nicht er soll den

GeckoWebBrowser1.Document.GetElementById("username").InnerHtml = username.Text
InnerHtml ist kein Member von Gecko.GeckoElement
Bitte warten ..
Mitglied: colinardo
10.09.2014, aktualisiert um 14:00 Uhr
Zitat von soritose:
bis jest bekomme ich auch alles hin nur das nicht er soll den

GeckoWebBrowser1.Document.GetElementById("username").InnerHtml = username.Text
ist das ein Form-Element bzw. ein Textfeld das du füllen möchtest ?
dann machst du es wie oben im letzen Teil beschrieben mit CType , oder so:
01.
Dim username_node As Gecko.DOM.GeckoInputElement = GeckoWebBrowser1.Document.GetElementById("username") 
02.
username_node.Value = username.Text
Grüße Uwe
Bitte warten ..
Mitglied: soritose
10.09.2014 um 14:49 Uhr
Sory das ich nerfe

ja es wollen felder ausgefült werden also ein anmelde vormular

also das
 Dim username_node As Gecko.DOM.GeckoInputElement = GeckoWebBrowser1.Document.GetElementById("username") 
username_node.Value = My.Settings.Username
get nicht bekomme ich einen Fehler wen ich es ausfüre

NullReferenceExeption wurde nicht behandelt.
Der Objektverweis wurde nicht auf ein Objecktinstanz festgelegt.

das man es besser erkennt hier mal das Privat sup Button3_Click

            Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click 
        Dim username_node As Gecko.DOM.GeckoInputElement = GeckoWebBrowser1.Document.GetElementById("username") 
        Dim password_node As Gecko.DOM.GeckoInputElement = GeckoWebBrowser1.Document.GetElementById("password") 
        Me.Text = "warte..." 
        Button3.Enabled = False 
        Me.Cursor = Cursors.WaitCursor 
 
        GeckoWebBrowser1.Navigate("hier ist dan die web seite") 
 
        username_node.Value = My.Settings.Username 
        password_node.Value = My.Settings.Password 
        System.Threading.Thread.Sleep(300) 
        CType(GeckoWebBrowser1.Document.Forms(1), Gecko.DOM.GeckoFormElement).submit() 
        System.Threading.Thread.Sleep(300) 
        GeckoWebBrowser1.Navigate("hier ist dan die web seite") 
 
 
        Me.Text = "Seite Würde Geladen" 
        Button3.Enabled = True 
        Button1.Enabled = True 
 
        Me.Cursor = Cursors.Arrow 
 
    End Sub
CType weis ich leider nicht wie genau ich das machen muss sory
        CType(GeckoWebBrowser1.Document.GetElementById("usename"), Gecko.DOM.GeckoFormElement).submit()
Bitte warten ..
Mitglied: colinardo
10.09.2014, aktualisiert um 14:53 Uhr
tja du musst die Zeilen natürlich erst hinter Navigate einfügen (also wenn die URL schon geladen wurde) so ist es klar das keine Objektinstanz gefunden werden kann !!
Bitte warten ..
Mitglied: soritose
10.09.2014 um 15:06 Uhr
habe es jest so

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click 
 
        Me.Text = "warte..." 
        Button3.Enabled = False 
        Me.Cursor = Cursors.WaitCursor 
 
        GeckoWebBrowser1.Navigate("http://www.") 
 
 
        Dim username_node As Gecko.DOM.GeckoInputElement = GeckoWebBrowser1.Document.GetElementById("username") 
        username_node.Value = My.Settings.Username 
        Dim password_node As Gecko.DOM.GeckoInputElement = GeckoWebBrowser1.Document.GetElementById("password") 
        password_node.Value = My.Settings.Password 
        System.Threading.Thread.Sleep(300) 
        CType(GeckoWebBrowser1.Document.Forms(1), Gecko.DOM.GeckoFormElement).submit() 
        System.Threading.Thread.Sleep(300) 
        GeckoWebBrowser1.Navigate("http://www.") 
 
 
        Me.Text = "Seite Würde Geladen" 
        Button3.Enabled = True 
        Button1.Enabled = True 
 
        Me.Cursor = Cursors.Arrow 
 
    End Sub 

kommt das klicke wie oben
Bitte warten ..
Mitglied: colinardo
10.09.2014, aktualisiert um 15:09 Uhr
du wartest ja auch nicht bis der Browser die Seite endgültig geladen hat. Hatte ich oben schon das entsprechende Event dafür gespostet.
Sorry aber mach mal einen Programmierkurs !
Bitte warten ..
Mitglied: soritose
10.09.2014 um 15:34 Uhr
sory Programmierkurs kann ich mir nicht leisten

und ich habe es jest so gemacht
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click 
GeckoWebBrowser1.Navigate("http://www.") 
End Sub
und wen die Seite geladen ist soll ja das passieren laut deiner Anleitung

Private Sub GeckoWebBrowser1_DOMContentLoaded(ByVal sender As Object, ByVal e As Gecko.DomEventArgs) Handles GeckoWebBrowser1.DOMContentLoaded 
        Dim username_node As Gecko.DOM.GeckoInputElement = GeckoWebBrowser1.Document.GetElementById("username") 
        username_node.Value = My.Settings.Username 
        Dim password_node As Gecko.DOM.GeckoInputElement = GeckoWebBrowser1.Document.GetElementById("password") 
        password_node.Value = My.Settings.Password 
        System.Threading.Thread.Sleep(300) 
        CType(GeckoWebBrowser1.Document.Forms(1), Gecko.DOM.GeckoFormElement).submit() 
    End Sub
er für es auch aus
sobald die Seite geladen ist aber es komm immer noch der Fehler und er markiert mir das
username_node.Value = My.Settings.Username
Bitte warten ..
Mitglied: colinardo
10.09.2014, aktualisiert um 15:44 Uhr
hier läuft das einwandfrei, dann findet dein Script kein Element mit dem Namen username oder es ist kein Input-Element, kann ich leider mangels HTML-Quelltext nicht sehen ...
Die entspechende CType-Variante sieht so aus:
CType(GeckoWebBrowser1.Document.GetElementById("username"), Gecko.DOM.GeckoInputElement).Value = My.Settings.Username
auch die läuft hier einwandfrei. Also ohne HTML-Quelltext kann ich dir hier leider nicht weiterhelfen.
Bitte warten ..
Mitglied: soritose
10.09.2014 um 15:59 Uhr
also mit den HTML-Quelltext kann ich dir helfen das ist der Bereich für das Login
 
    <FORM method=POST action="login.php?ua=login" name="loginform"> 
        <div align=center><BR><FONT color="#FF0000" face="Arial"><B></B></font><BR> 
         
        <TABLE cellspacing=0 cellpadding=2 width=200 align=center> 
            <TR> 
                <TD bgcolor="#646464" align=center> 
                    <font face="Arial" color="#FFFFFF"><B> ..:: Login ::..</B></font> 
                </TD> 
            </TR> 
            <TR> 
                <TD bgcolor="#AAAAAA" align=center> 
                    <TABLE> 
                        <TR> 
                            <TD align=left><font face="Arial" color="#000000">Username:</TD> 
                            <TD align=left><INPUT name="username"></TD> 
                        </TR> 
                        <TR> 
                            <TD align=left><font face="Arial" color="#000000">Password:</TD> 
                            <TD align=left><INPUT name="password" type=password></TD> 
                        </TR> 
                                            </TABLE> 
                    <BR> 
                    <INPUT type=submit value=" LOGIN "> 
                    <BR><BR> 
                    <a href="register.php">Register new account</a> 
                    <BR> 
                    <a href="forgotpw.php">Forgot password?</a> 
                    <BR><BR> 
                </TD> 
            </TR> 
        </TABLE> 
        </div> 
    </FORM> 
mit den CType kommt das kliche aber wie kann es sein das es bei den normalen WebBrowser1 alles ging und jest soll es das nicht mehr geben
Bitte warten ..
Mitglied: colinardo
10.09.2014, aktualisiert um 16:10 Uhr
mit den CType kommt das kliche aber wie kann es sein das es bei den normalen WebBrowser1 alles ging und jest soll es das nicht mehr geben
wie schon gesagt ist das eine ganze andere Bibliothek als die des InternetExplorer !!!!!! Die Programmieranforderungen sind je nach Bibliothek unterschiedlich, das ist vollkommen normal...

<INPUT name="username">
Da haben wir doch schon den Übelltäter, der Input hat keine ID sondern nur einen Namen - du musst hier also mit GetElementsByName arbeiten, das ganze würde dann so aussehen (wenn es das erste Element mit dem Namen username im Dokument ist):
CType(GeckoWebBrowser1.Document.GetElementsByName("username")(0), Gecko.DOM.GeckoInputElement).Value = My.Settings.Username
p.s. dein Visual Studio bietet Debugging-Funktionen mit denen du schön sehen kannst ob einem Objekt ein Wert zugewiesen wurde oder nicht. Hilft ungemein beim Entwickeln und solltest du dich unbedingt mit beschäftigen.
Bitte warten ..
Mitglied: soritose
10.09.2014 um 16:55 Uhr
ok und danke jest get es

ich hoffe ich nerve nicht

und ich klaube das solte die leste frage sein

kannst mir das auch noch sagen wie ich das machen da kommt leider auch die Fehler Meldung

        Dim element As Gecko.GeckoElement = GeckoWebBrowser1.Document.GetElementById("language") 
        Dim month As Gecko.GeckoElement = element.GetElementsByTagName("option").Cast(Of Gecko.GeckoElement).First(Function(el) el.GetAttribute("value") = lspr1.Text) 
        month.SetAttribute("selected", "true")
und hier ist der HTML-Quelltext

        <TR><TD>Language*:</TD><TD><SELECT class="interfaceforms" name="language"><OPTION value="">Please select</OPTION> 
        	        		<OPTION value="13" style="Background: URL('flag_netherlands.gif') no-repeat 3px center transparent; Text-Indent: 40px">dutch</OPTION> 
        		        		<OPTION value="3" style="Background: URL('us_flag_small.png') no-repeat 3px center transparent; Text-Indent: 40px">english</OPTION> 
        		        		<OPTION value="6" style="Background: URL('flag_france.gif') no-repeat 3px center transparent; Text-Indent: 40px">french</OPTION> 
        		        		<OPTION value="2" style="Background: URL('us_ger_small.png') no-repeat 3px center transparent; Text-Indent: 40px">german</OPTION> 
        		        		<OPTION value="12" style="Background: URL('flag_greece.gif') no-repeat 3px center transparent; Text-Indent: 40px">greek</OPTION> 
        		        		<OPTION value="9" style="Background: URL('flag_india.gif') no-repeat 3px center transparent; Text-Indent: 40px">indian,hindi</OPTION> 
        		        		<OPTION value="11" style="Background: URL('flag_italy.gif') no-repeat 3px center transparent; Text-Indent: 40px">italian</OPTION> 
        		        		<OPTION value="10" style="Background: URL('flag_japan.gif') no-repeat 3px center transparent; Text-Indent: 40px">japanese</OPTION> 
        		        		<OPTION value="14" style="Background: URL('flag_poland.png') no-repeat 3px center transparent; Text-Indent: 40px">polish</OPTION> 
        		        		<OPTION value="5" style="Background: URL('flag_russia.gif') no-repeat 3px center transparent; Text-Indent: 40px">russian</OPTION> 
        		        		<OPTION value="8" style="Background: URL('flag_spain.gif') no-repeat 3px center transparent; Text-Indent: 40px">spanish</OPTION> 
        		        		<OPTION value="7" style="Background: URL('flag_turkey.gif') no-repeat 3px center transparent; Text-Indent: 40px">turkey</OPTION> 
        		        	</SELECT></TD> 
        </TR>
Bitte warten ..
Mitglied: colinardo
10.09.2014 um 17:26 Uhr
um z.B. den 4 Eintrag als ausgewählt zu setzen:
01.
Dim lang_select As Gecko.DOM.GeckoSelectElement = GeckoWebBrowser1.Document.GetElementsByName("language")(0) 
02.
lang_select.Options.item(3).Selected = True
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen.
Bitte warten ..
Ähnliche Inhalte
Visual Studio
MySql Befehl mittels vbs funktioniert nur dann wenn ich keine Befehle mit angebe. Was mache ich Falsch?
Frage von iGordonVisual Studio12 Kommentare

Hallo, ich habe ein Problem mit einem vbs Skript das ich derzeit am Programmieren bin. Ich bin derzeit dabei ...

Mac OS X
Probleme mit Befehlen in Word:Mac
Frage von BernardoneMac OS X3 Kommentare

Guten Tag in die Runde! Auf meinem neuen iMac (Mac OS - X Mavericks) habe ich Word:Mac 2011 installiert. ...

PHP
KW berechnen, was mach ich falsch?
gelöst Frage von icegetPHP2 Kommentare

Hallo Community, ich arbeite an einem kleinen Kalender, und habe folgendes Problem: Da ich auch eine Wochenansicht in meinem ...

Batch & Shell
Script, was mache ich verkehrt?
gelöst Frage von KnuefiBatch & Shell2 Kommentare

Hallo zusammen, ich hoffe mir kann jemand von euch helfen. Ich wollte mit diesen Script 3 Ordner überwachen und ...

Neue Wissensbeiträge
Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 10 StundenInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 17 StundenVerschlüsselung & Zertifikate1 Kommentar

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 1 TagWindows 104 Kommentare

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 1 TagSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless19 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement17 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...