![]() |
|
Auto It - Wersja do druku +- Praca w domu - Dodatkowa Praca - Zarabianie przez Internet (https://zarabiam.com) +-- Dział: Off-Topic (https://zarabiam.com/Forum-Off-Topic-9) +--- Dział: Programowanie (https://zarabiam.com/Forum-Programowanie-364) +--- Wątek: Auto It (/Temat-Auto-It-148596) |
Auto It - MagisterHKR - 27-06-2017 Witam, mam do was pytanie. Jak mogę kliknąć za pomocą Auto It w diva na stronie (Mowa tu o Mozilli i dodatku ff.au3) Otóż, do tej pory wykorzystywałem wyszukiwanie obrazkiem lecz jest to dosyć wolniejsze rozwiązanie i chciałbym klikać przez _FFClick tylko mam taki problem, mianowicie chodzi o to, że owszem klika lecz nie mogę ustawić tolerancji ( Chciałbym aby nie klikało to w te same miejsca tylko je zmieniać, za pomocą randa bym dodał liczbe do x i y aby sprawiał wrażenie klikającego ludzia )Czy ktoś zna się dobrze w Auto It? Tak wygląda funkcja kliknięcia. Gdzie tu mógłbym dodać pozycje kliknięć? ;( Kod: ; #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[, $bLoadWait = True]]])
; Parameter(s): .: $sElement - Element to click on
; $sMode - Optional: (Default = "elements") :
; | elements
; | id
; | name
; | class
; | tag
; $iIndex - Optional: (Default = 0) : Index if $sMode = class, name, tag
; $bLoadWait - Optional: (Default = True) :
; Return Value ..: Success - 1
; Failure - 0
; @ERROR -
; Author(s) .....: Thorsten Willert
; Date ..........: Sat Feb 26 16:57:09 CET 2011 @706 /Internet Time/
; Link ..........:
; Related .......: _FFImageClick, _FFLinkClick. _FFImageMapClick
; Example .......: Yes
; ==============================================================================
Func _FFClick($sElement, $sMode = "elements", $iIndex = 0, $bLoadWait = True)
Local Const $sFuncName = "_FFClick"
If Not IsInt($iIndex) Then
SetError(__FFError($sFuncName, $_FF_ERROR_InvalidDataType, "(int) $iIndex: " & $iIndex))
Return 0
EndIf
If $sMode = Default Then $sMode = "elements"
If $iIndex = Default Then $iIndex = 0
Switch StringLower($sMode)
Case "elements"
If StringLeft($sElement, 7) = "OBJECT|" Then $sElement = StringMid($sElement, 8)
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 = "FFau3.WCD" & $sElement
Local $RetVal = _FFCmd("FFau3.simulateEvent(" & $sElement & ",'MouseEvents','click');")
If Not @error And $RetVal <> "_FFCmd_Err" And $RetVal = 1 Then
Sleep(25)
If $bLoadWait Then Return _FFLoadWait()
__FFSetTopDocument()
Return 1
Else
SetError(__FFError($sFuncName, $_FF_ERROR_NoMatch, "$sElement: " & $sElement))
Return 0
EndIf
EndFuncRE: Auto It - coffee - 27-06-2017 Po prostu klikaj w współrzędną (X,Y), gdzie: X - (losowa wartość pomiędzy 0 a szerokość diva) + współrzędna X diva Y - (losowa wartość pomiędzy 0 a wysokość diva) + współrzędna Y diva IMHO lepiej większą uwagę skup na interwale czasowym, niż klikaniu. Swoją drogą, to nie lepiej zrobić to np. w Selenium? RE: Auto It - MagisterHKR - 27-06-2017 Robiłem tak jak napisałeś lecz jest problem gdy element jest na dole strony a jest ona rzewijana ;/ Po prostu myszka idzie w dół. Monitor ma np. rozdzielczość 1k pixlów wysokości a element jest na 2k piksów. CHyba mnie rozumiesz ;/ Ten dodatek do ff zwraca pozycje elementu względem strony, nie ekranu. Selenium? Są do tego jakieś poradniki po polsku? Kumpel zaproponował mi Auto It to w tym piszę Przy okazji moge zapisywać informacje do plików na kompie(Przydatka informacja)///EDIT Aktualnie mam klikanie tak jak napisałeś + przewinięcie na sam dół strony jeśli konieczne i klikniecie za pomoca wyszukania obrazka ;/ RE: Auto It - MagisterHKR - 29-06-2017 Jest tu ktoś kto by mi pomógł z tym problemem? ;p RE: Auto It - coffee - 29-06-2017 Wykorzystaj inne narzędzia, które bardziej się do tego nadają. O selenium ci już pisałem, bez problemu zrobisz to co potrzebujesz. Czy są do tego poradniku po polsku? Nie wiem, poszukaj. RE: Auto It - imanust - 29-06-2017 Jak bardzo zależy Ci na autoit i _FF to użyj funkcji Kod PHP: _FFGetPosition([$sElement = ""]) Returns an array with the position of an element and/or the position and size of the FireFox content area, relative to the client area of the window 0 X position of the element (relative to the document) 1 Y position of the element (relative to the document) 2 X position of the content area (relative to the window client) 3 Y position of the content area (relative to the window client) 4 width of the content area 5 height of the content area Więc sprawa prosta, pobierasz pozycje danego elementu, sprawdzasz jaką ma szerokość [index-4] i wysokość[index-5] dzięki czemu będziesz wiedział po jakich wartościach możesz randomowo przesuwać kursor myszki żeby klikał w ten element
RE: Auto It - coffee - 29-06-2017 (29-06-2017, 22:18)trybun napisał(a): Jak bardzo zależy Ci na autoit i _FF to użyj funkcji Napisałem wcześniej jak może osiągnąć klikanie o którym mówisz i to autor tematu już zrobił. RE: Auto It - MagisterHKR - 30-06-2017 (29-06-2017, 18:53)coffee napisał(a): Wykorzystaj inne narzędzia, które bardziej się do tego nadają. O selenium ci już pisałem, bez problemu zrobisz to co potrzebujesz. Czy są do tego poradniku po polsku? Nie wiem, poszukaj. A czy selenium podczas klikania w dany element zwraca pozycje kliknięcia? O to mi głównie chodzi, na kilku stronach sprawdzają pozycje kliknięcia. Pierwotny programik miałem w javascripcie lecz tam się wysypało na pozycji kliknięcia Znaleźli mnie. Niby naprawiłem pozycje kliknięcia, javascriptem symuluje pozycje i jest to samo lecz. Dzieki AutoItowi mogę zapisywać dane do plików na kompie czego js nie potrafi zrobić (Chyba)
RE: Auto It - coffee - 01-07-2017 Co to za strony? RE: Auto It - MagisterHKR - 03-07-2017 Gry przeglądarkowe Obiecałem paru ludziom bocika Mam skrypcik ale js nie mozna zabezpieczyć, każdy może poznać mój kod i rozpowszechnić ;(
|