Hallo liebe Community,
Ich bin neu angemeldet in diesem Forum aber arbeite schon eine ganze Weile mit Autoit.
hab auch schon eine etwas tiefgreifendere Frage...
und zwar, es geht darum mir angepasste Funktionen für einen Browser zu schreiben ( ganz egal welcher, für dieses Bsp. will ich einfach mal Opera benutzen im vergleich mit Mozilla Firefox)
um mal dabei mit etwas ganz einfachen anzufangen,... ich habe mich mal in der FF.au3 schlau gemacht und die Function _FFClick genauer betrachtet.
[autoit]
; #FUNCTION# ===================================================================
; Name ..........: _FFClick
; Description ...: Simulates a click on an element.
; Beschreibung ..: Simuliert einen Klick auf ein Element.
; AutoIt Version : V3.3.0.0
; Syntax ........: _FFClick($sElement[, $sMode = "elements"[, $iIndex = 0]])
; Parameter(s): .: $sElement - Element to click on
; $sMode - Optional: (Default = "elements") :
; | elements
; | id
; | name
; | class
; | tag
; $iIndex - Optional: (Default = 0) : Index if $sMode = elements, name, tag
; Return Value ..: Success - 1
; Failure - 0
; @ERROR -
; Author(s) .....: Thorsten Willert
; Date ..........: Thu Apr 09 21:18:33 CEST 2009 @846 /Internet Time/
; Link ..........:
; Related .......: _FFClickXY, _FFImageClick, _FFLinkClick, _FFObjGet
; Example .......: Yes
; ==============================================================================
Func _FFClick($sElement, $sMode = "elements", $iIndex = 0)
Local $sFuncName = "_FFClick"
If Not IsInt($iIndex) Then
SetError(__FFError($sFuncName, $_FF_ERROR_InvalidDataType, "(int) $iIndex: " & $iIndex))
Return 0
EndIf
Switch StringLower($sMode)
Case "elements"
If StringLeft($sElement, 7) = "OBJECT|" Then $sElement = StringMid($sElement,
Case "id"
$sElement = ".getElementById('" & $sElement & "')"
Case "name"
$sElement = ".getElementsByName('" & $sElement & "')[" & $iIndex & "]"
Case "class"
$sElement = ".getElementsByClassName('" & $sElement & "')[" & $iIndex & "]"
Case "tag"
$sElement = ".getElementsByTagName('" & $sElement & "')[" & $iIndex & "]"
Case Else
SetError(__FFError($sFuncName, $_FF_ERROR_InvalidValue, "(elements|id|name|class|tag) $sMode: " & $sMode))
Return 0
EndSwitch
If StringLeft($sElement, 1) = "." Then $sElement = "window.content.document" & $sElement
[/autoit][autoit][/autoit][autoit]Local $RetVal = _FFCmd("FFau3.simulateClick(" & $sElement & ",0,0);")
If Not @error And $RetVal <> "_FFCmd_Err" And $RetVal = 1 Then
Sleep(25)
Return $RetVal
Else
SetError(__FFError($sFuncName, $_FF_ERROR_NoMatch, "$sElement: " & $sElement))
Return 0
EndIf
EndFunc ;==>_FFClick
[/autoit]Aufgefallen ist mir dabei das es um an die verschiedenen Objekte zu kommen, JavaScript nutzt.
Aber mir ist z.B. nicht ganz klar was das $sElement darstellt bzw. was dafür eingetragen wird (ich denke es ist ein String wegen dem präfix)
Es geht mir auch darum, wie kann ich verschiedene Objekte auslesen und den Focus bestimmen? Anscheinend geht es ja über JavaScript zu realisieren, aber wie wird so ein befehl genau geschrieben in Autoit - siehe document.getElementById("Button").value.
Oder muss zwangsweise der Quellcode ausgelesen und geprüft werden nach Buttons in diesem Beispiel?
Ich hoffe ihr könnt mir weiterhelfen ;D
ty