Dein Beispiel geht nun auch.
Downloads stehen alle dort:
https://autoit.de/index.php?page=Thread&threadID=3629
Dein Beispiel geht nun auch.
Downloads stehen alle dort:
https://autoit.de/index.php?page=Thread&threadID=3629
Naja, XPath wird ja von RegExp gefeeded :p...! Also ist ja klar, dass XPather nix findet...^^
Habe dir noch was per PN geschickt :D...
(Ich hab mich so an deine tolle UDF "gewöhnt"... xD )
LG
Ich hatte den XPath aus der Console kopiert ...
Ich zweifel sicher nicht, dass ich Fehler mache ;)! ABSOLUT nicht...
Problem -> Bei SEuBo klappen BEIDE Scripts...
Bei mir nicht... Sonst ne Idee, warum das an mir liegen könnte?! Ich habe seins und er meins probiert... Bei ihm gehen beide unverändert, bei mir nicht :/...
LG
Habt ihr die gleiche Mozrepl-Version? DIe aktuelle ist 1.0.2
Also ich hab 1.0.0.2009122217
Dazu FF 3.5.7
ok ich hab hier jetz mal auch nen schönen Fehler mit _FFXPath
_FFConnect: OS: WIN_7 WIN32_NT 7600
_FFConnect: AutoIt: 3.3.2.0
_FFConnect: FF.au3: 0.6.0.1b-3
_FFConnect: IP: 127.0.0.1
_FFConnect: Port: 4242
_FFConnect: Delay: 2ms
_FFConnect: Socket: 568
_FFConnect: Browser: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7
__FFSendJavaScripts: Sending functions to FireFox .......... done
__FFSend: try{FFau3 != null?1:0}catch(e){'_FFCmd_Err';};
__FFRecv: 1
Alles anzeigen
ersma die Verbindung... klappt soweit
__FFSend: FFau3.xpath=null;try{FFau3.xpath=FFau3.WCD.evaluate("/html/body/div[1]",FFau3.WCD,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;}catch(e){'_FFXPath_Error: '+e;};
__FFRecv: [object HTMLDivElement] — {scrollWidth: 260, clientLeft: 0, clientHeight: 15, clientWidth: 260, clientTop: 0, getClientRects: function() {…}, getBoundingClientRect: function() {…}, ...}
ja... versteh den __FFRecv iwie nit allein schon was der __FFSend da sendet is anders als bei der älteren FF.au3
Das hier is die neueste nicht-Testversion
und das ganze bei der Abfrage hier:
If _FFIsConnected() Then
_FFFrameEnter(7)
$sString = _FFXPath("/html/body/div[1]")
_FFFrameLeave()
EndIf
mit der FF.au3 Version 0.6.0.0b-5 bekomme ich bei gleichen Befehl das hier
__FFSend: FFau3.xpath=null;try{FFau3.xpath=window.content.top.frames[7].document.evaluate("/html/body/div[1]",window.content.top.frames[7].document,null,XPathResult.STRING_TYPE,null).stringValue;}catch(e){'_FFXPath_Error: '+e;};
__FFRecv:
Lorem ipsum dolor sit amet....
allein schon der __FFSend sieht ganz anders aus
weitere Daten:
FireFox Version 3.5.7
MozRepl Version 1.0.0.2009122217
@Karill Endusa:
Das ist kein Fehler:
V0.6.0.1b-3
- Changed: Default values for _FFXpath: _FFXPath($sQuery, $sAttribute = "", $iReturnType = 9, $iFilter = 0)
d.h.: per Default wird nun nicht mehr der "textContent" sondern das Objekt zurückgegeben.
ah ok danke... ich find gar keinen Changelog zu Version V0.6.0.1b-3 xD
Hab vergessen das einzutragen. Die aktuellen Änderungen stehen allerdings auch in der FF.au3 selbst.
kein wunder das mein Script auf einem neuen System mit neuer FF.au3 etc nicht mehr läuft.
Ich habe hier noch einen kleinen Code der nicht funktioniert:
#include <FF.au3>
If _FFConnect(Default, 4000, 3000) Then
Sleep(2000)
_FFclick(_FFXpath("/html/body/span[@id='main']/center/span[@id='body']/center/form/table[1]/tbody/tr[1]/td[2]/input[7]","",9))
EndIf
Soll einfach auf https://autoit.de/www.google.de auf den suchen button klicken.
Ausgabe
>"C:\Program Files (x86)\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "G:\test2.au3"
_FFConnect: OS: WIN_7 WIN32_NT 7600
_FFConnect: AutoIt: 3.3.4.0
_FFConnect: FF.au3: 0.6.0.1b-3
_FFConnect: IP: 127.0.0.1
_FFConnect: Port: 4000
_FFConnect: Delay: 2ms
_FFConnect: Socket: 616
_FFConnect: Browser: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2) Gecko/20100115 Firefox/3.6
__FFSendJavaScripts: Sending functions to FireFox .......... done
__FFSend: FFau3.xpath=null;try{FFau3.xpath=FFau3.WCD.evaluate("/html/body/span[@id='main']/center/span[@id='body']/center/form/table[1]/tbody/tr[1]/td[2]/input[7]",FFau3.WCD,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;}catch(e){'_FFXPath_Error: '+e;};
__FFWaitForRepl ==> MozRepl Exception: !!! [Exception... "Component is not available" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"
__FFSend: ;
__FFRecv:
__FFSend: try{FFau3.simulateEvent(FFau3.xpath,'MouseEvents','click');}catch(e){'_FFCmd_Err';};
__FFRecv: 1
_FFLoadWait: . loaded in 7ms
>Exit code: 0 Time: 4.434
Alles anzeigen
Früher ging das alles, jetzt nicht mehr und ich weiß nicht warum.
Habt ihr eine Idee?
Was ist "früher"? Bevor google seine Webseite umgebaut hat?
Der XPath in deinem Beispiel liefert bei mir weder mit FireBug noch mit XPather ein Ergebnis.
Das funktioniert:
[autoit]#include <FF.au3>
[/autoit][autoit][/autoit][autoit]If _FFConnect() Then
_FFSetValue("test", "q", "name")
_FFClick(_FFXPath("//input[@type='submit' and @name='btnG' ]") )
EndIf
wobei ein einfaches _FFFormSubmit() gereicht hätte ...
äh ja.... ka was ich da gemacht habe, jetzt gehts wieder....
Kann es zu Problemen kommen wenn ich die Firefox Portable Version nehme? Die ist nämlich 3.6.
Eigentlich nicht - funktioniert hier auch mit der "normalen" V3.6.
ich muss das Thema nochmal vorholen
ich habe FirefoxPortable 3.6
MozRepl 1.0.0.2009122217
FF.au3 V0.6.0.1b-3
AutoIt: 3.3.4.0
kleines Programm
#include <FF.au3>
_FFConnect(Default, 4000, 3000)
_FFOpenURL("http://www.computerbase.de/")
_FFLoadWait() ;warten bis fertig geladen
_FFclick(_FFXpath("/html/body/div[@id='page_wrapper']/div[@id='page']/div[@id='header']/div[@id='nav_wrapper']/ul[@id='nav']/li[5]/a","",9))
_FFLoadWait() ;warten bis fertig geladen
_FFConnect(Default, 4000, 3000) ; ohne das geht es nicht weiter
_FFclick(_FFXpath("/html/body/div[@id='page_wrapper']/div[@id='page']/div[@id='container']/div[@id='center']/div[1]/div/div/div[1]/table/tbody/tr/td[3]/a","",9))
Alles anzeigen
Lasse ich das letzte FFConnect weg, wird die letze Zeile nicht mehr ausgeführt.
Programm geht zuerst auf computerbase.de dann klickt er aufs Forum und dann auf Hilfe
Ich habe als derzeitige Lösung vor jedes FFClick ein FFConnect gemacht. Das Problem dabei ist, dass er irgendwann total langsam wird und dann immer der timeout kommt.
Von dem Problem hat hier auch einer in einem Thread geschrieben.
https://autoit.de/index.php?page=Thread&threadID=17633
Hoffe ihr könnt mir helfen
EDiT: update auf AutoIt: 3.3.6.0 gemacht und hat nix gebracht.
Greetz
Dann lad doch einfach mal die richtige Betaversion von FF.au3 runter in der das Problem gefixt ist. Die aktuelle Version ist 0.6.0.1b-4 nicht 0.6.0.1b-3.
achso, ich dachte mittlerweile wäre das auch in der normalen Version gefixt. Gut Danke werd ich gleich testen
@leedian
Mit dem Problem kämpfe ich als auch. Das einzigste was ich hilfreiches gefunden hab war "einfach" immer dis- und neuconnect.
_FFDisConnect()
_FFConnect()
_FFclick(_FFXpath...
Nich schön, nich selten *hust* aber funzt
chip
Ich hab es mal mit der Beta getestet und keine Veränderung festgestellt. Der Fehler äussert sich so:
_FFConnect()
If _FFIsConnected() Then
_FFFormSubmit()_FFLinkClick ( "Seite aktualisieren" , "text" )Else ; Sonst... (Fehlermeldung!)
MsgBox(64, "Ein Fehler ist aufgetreten", "Eine Verbindung mit dem Mozilla FireFox war nicht möglich!")
EndIf
kommt die Meldung:
__FFSend: FFau3.xpath=null;try{FFau3.xpath=FFau3.WCD.evaluate("//a[contains(.,'Seite aktualisieren')]",FFau3.WCD,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;}catch(e){'_FFXPath_Error: '+e;};
__FFRecv:
__FFSend: try{FFau3.simulateEvent(FFau3.xpath,'MouseEvents','click');}catch(e){'_FFCmd_Err';};
__FFRecv: -3
_FFClick ==> No match: $sElement: FFau3.xpath
Mach ich vor dem _FFLinkClick ein _FFConnect bzw erst _FFDisconnect _FFConnect klappt es:
__FFSend: FFau3.xpath=null;try{FFau3.xpath=FFau3.WCD.evaluate("//a[contains(.,'Seite aktualisieren')]",FFau3.WCD,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;}catch(e){'_FFXPath_Error: '+e;};
__FFRecv: (der vorhandene Link, leider nicht öffentlich zugänglich)
__FFSend: try{FFau3.simulateEvent(FFau3.xpath,'MouseEvents','click');}catch(e){'_FFCmd_Err';};
__FFRecv: 1
_FFLoadWait: ........... loaded in 2840ms
Ich schau mal ob ich das aktuellste Autoit-Version hab, aber eine Casualität seh ich da nicht
Grüße
Edith meint:
und keine Änderung *schulternzuck*
@Seldzar: jepp, habe jetzt auch die neue ff.au3 ( testversion) und sieht genauso aus wie bei dir.
Ich frage mich echt woran es liegt, und wieso es bei den anderen anscheinend geht?
@Seldzar: jepp, habe jetzt auch die neue ff.au3 ( testversion) und sieht genauso aus wie bei dir.
Ich frage mich echt woran es liegt, und wieso es bei den anderen anscheinend geht?
Reproduzierbarkeit ....
Wenn ich ne einfache Tabelle mach und das Script local teste klappt es ja:
_FFConnect()
If _FFIsConnected() Then
local $vTest
_FFLinkClick ("" , "text" )
for $i = 1 to 3
$vTemp = "Nix"
$vTemp = _FFXPath ( "/html/body/table/tbody/tr[1]/td" , Default , 2)
$vTest &= $vTemp & " + "
_FFLinkClick ("laden" , "text" )
Next
MsgBox ( 0 , "Test" , $vTest )
Else ; Sonst... (Fehlermeldung!)
MsgBox(64, "Ein Fehler ist aufgetreten", "Eine Verbindung mit dem Mozilla FireFox war nicht möglich!")
EndIf
Und wenn ich dann halt auf der nicht öffentlich zugänglichen Seite bin happert es wieder.
Grüße