Ausgangssituation: FF ist offen und ein Tab mit irgendeiner Seite ist geöffnet (für diese Bsp: keine wiki-Seite).
Testcode:
_FFConnect()
_FFTabAdd("http://de.wikipedia.org/")
_FFClick(_FFXpath("//a[contains(@href,'Portal:Geographie')]", "", 9)
1. Ausführung: nichts wird angeklickt
output
+>17:19:33 Starting AutoIt3Wrapper v.2.0.1.22 Environment(Language:0407 Keyboard:00000407 OS:WIN_7/ CPU:X64 OS:X64)
>Running AU3Check (1.54.19.0) from:C:\Program Files (x86)\AutoIt3
+>17:19:33 AU3Check ended.rc:0
>Running:(3.3.4.0):C:\Program Files (x86)\AutoIt3\autoit3.exe "C:\Users\Hell\Desktop\DSBot\FF Test file.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: 4242
_FFConnect: Delay: 2ms
_FFConnect: Socket: 608
_FFConnect: Browser: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8
__FFSendJavaScripts: Sending functions to FireFox .
__FFWaitForRepl ==> MozRepl Exception: !!! [Exception... "Component is not available" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"
......... done
__FFSend: try{gBrowser.selectedTab = gBrowser.addTab('http://de.wikipedia.org/')}catch(e){'_FFCmd_Err';};
__FFRecv: [object XULElement] — {linkedBrowser: {…}, _tPos: 5, mOverCloseButton: false, mCorrespondingMenuitem: null, arrowKeysShouldWrap: false, accessibleType: 4119, control: {…}, ...}
_FFLoadWait: ... loaded in 527ms
_FFLoadWait: . loaded in 10ms
__FFSend: try{gBrowser.tabContainer.selectedIndex}catch(e){'_FFCmd_Err';};
__FFRecv: 5
tab: 5
__FFSend: FFau3.xpath=null;try{FFau3.xpath=FFau3.WCD.evaluate("//a[contains(@href,'Portal:Geographie')]",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
+>17:19:36 AutoIT3.exe ended.rc:0
>Exit code: 0 Time: 4.032
2. Ausführung: im zuletzt aktiven Tab wird der Link angeklickt, aber nicht im neu geöffneten
output
+>17:22:37 Starting AutoIt3Wrapper v.2.0.1.22 Environment(Language:0407 Keyboard:00000407 OS:WIN_7/ CPU:X64 OS:X64)
>Running AU3Check (1.54.19.0) from:C:\Program Files (x86)\AutoIt3
+>17:22:37 AU3Check ended.rc:0
>Running:(3.3.4.0):C:\Program Files (x86)\AutoIt3\autoit3.exe "C:\Users\Hell\Desktop\DSBot\FF Test file.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: 4242
_FFConnect: Delay: 2ms
_FFConnect: Socket: 600
_FFConnect: Browser: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8
__FFSendJavaScripts: Sending functions to FireFox .......... done
__FFSend: try{gBrowser.selectedTab = gBrowser.addTab('http://de.wikipedia.org/')}catch(e){'_FFCmd_Err';};
__FFRecv: [object XULElement] — {linkedBrowser: {…}, _tPos: 5, mOverCloseButton: false, mCorrespondingMenuitem: null, arrowKeysShouldWrap: false, accessibleType: 4119, control: {…}, ...}
_FFLoadWait: ..... loaded in 1130ms
_FFLoadWait: . loaded in 10ms
__FFSend: try{gBrowser.tabContainer.selectedIndex}catch(e){'_FFCmd_Err';};
__FFRecv: 5
tab: 5
__FFSend: FFau3.xpath=null;try{FFau3.xpath=FFau3.WCD.evaluate("//a[contains(@href,'Portal:Geographie')]",FFau3.WCD,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;}catch(e){'_FFXPath_Error: '+e;};
__FFRecv: http://de.wikipedia.org/wiki/Portal:Geographie
__FFSend: try{FFau3.simulateEvent(FFau3.xpath,'MouseEvents','click');}catch(e){'_FFCmd_Err';};
__FFRecv: 1
_FFLoadWait: . loaded in 10ms
+>17:22:39 AutoIT3.exe ended.rc:0
>Exit code: 0 Time: 3.532
Daran ändern auch folgende Variationen nichts:
- delays nach allen Aktionen (ffclick und ffxpath auch getrennt)
- tabs vor xpath aber nach _FFTabAdd mit _FFTabSetSelected wechseln (Aktion wir immer im Tab ausgeführt der vor _FFTabAdd ausgewählt war)
- _FFLinkClick verwenden
installierte FF-AddOns: AdBlockPlus, NoScript (beide testweise deaktiviert), xPather, FireBug, FireXPath, GM, MozRepl