Witaj gościu! Zaloguj się lub Zarejestruj aby móc korzystać ze wszystkich funkcjonalności jakie oferuje to forum! Rozpocznij zarabianie przez internet, poznaj korzysci pracy w domu! Rejestracja i korzystanie z forum jest całkowicie darmowe!
Praca w domu - Dodatkowa Praca - Zarabianie przez Internet
Auto It - Wersja do druku

+- Praca w domu - Dodatkowa Praca - Zarabianie przez Internet (https://zarabiam.com)
+-- Dział: Off-Topic (/Forum-Off-Topic-9)
+--- Dział: Programowanie (/Forum-Programowanie-364)
+--- Wątek: Auto It (/Temat-Auto-It-148596)



Auto It - MagisterHKR - 27-06-2017 15:21

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 Big Grin)
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

EndFunc



RE: Auto It - coffee - 27-06-2017 16:03

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 16:25

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ę Big Grin 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 15:23

Jest tu ktoś kto by mi pomógł z tym problemem? ;p


RE: Auto It - coffee - 29-06-2017 17:53

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 21:18

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 Smile


RE: Auto It - coffee - 29-06-2017 21:56

(29-06-2017 21:18)trybun napisał(a):  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 Smile

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 13:22

(29-06-2017 17: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 Big Grin 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ć Big Grin (Chyba)


RE: Auto It - coffee - 01-07-2017 19:33

Co to za strony?


RE: Auto It - MagisterHKR - 03-07-2017 15:47

Gry przeglądarkowe Big Grin Obiecałem paru ludziom bocika Big Grin Mam skrypcik ale js nie mozna zabezpieczyć, każdy może poznać mój kod i rozpowszechnić ;(