Jump to content

FF.AU3: can not automate login on this site


Recommended Posts

I'm trying to automate login on this site in the last few days, and I have to admit it drive me crazy.

Seems like there is no solution.

The site is rumah123 dot com

Click on the "Login atau Daftar" link at top right screen.

(I am using this code that work beautifully to click on that link):

$oInput = _FFXPath('//*[@data-target="#LoginAgentModal"]')
Sleep(250)
_FFDispatchEvent($oInput, 'keypress', 13)

A login form will displayed.

The problem no matter what code I tried, it can not fill the "username" and "password" part.

Tried these without success:

_FFXPath('//input[@id="username"]')
_FFCmd("FFau3.xpath.value='me@me.com'")
_FFSetValue("me@me.com", "username", "id")
_FFSetValue("$me@me.com", "username", "name")

Tried also with SEND command, but the SEND command is very not reliable: sometime it works, sometime not:

BlockInput(1)
Sleep(500)
WinActivate("[CLASS:MozillaWindowClass]", "")
Sleep(50)
For $a = 1 to 5
    Sleep(50)
    Send("{TAB}")
Next
Sleep(50)
Send($Username[1])
Sleep(50)
Send("{TAB}")
Sleep(50)
Send($Password[1])
Sleep(50)
Send("{TAB}")
Sleep(50)
Send("{SPACE}")
BlockInput(0)

Is there is any way to automate this kind of form/site using FF.AU3 ?

Thanks a lot! :)

 

Link to comment
Share on other sites

8 hours ago, Danp2 said:
Tried these without success: 


_FFXPath('//input[@id="username"]')
_FFCmd("FFau3.xpath.value='me@me.com'")

This works for me. Telling us that it didn't work isn't helpful. Examine / post the results from the Scite output window if you want to make progress on this. ;-)

Thanks a lot Danp2, for trying to help :)

This is the output of the Scite:

_FFConnect: OS: WIN_XP WIN32_NT 2600 Service Pack 3
_FFConnect: AutoIt: 3.3.8.1
_FFConnect: FF.au3: 0.6.0.1b-15
_FFConnect: IP: 127.0.0.1
_FFConnect: Port:   4242
_FFConnect: Delay:  2ms
_FFConnect: Socket:     1276
_FFConnect: Browser:    Mozilla/5.0 (Windows NT 5.1; rv:43.0) Gecko/20100101 Firefox/43.0
__FFSendJavaScripts: Sending functions to FireFox .......... done
_FFLoadWait: ... loaded in 543ms
[object HTMLDocument] - {location: {...}, getElementsByName: function() {...}, getItems: function() {...}, open: function() {...}, close: function() {...}, write: function() {...}, writeln: function() {...}, ...}
_FFLoadWait: . loaded in 11ms
[object HTMLDocument] - {location: {...}, getElementsByName: function() {...}, getItems: function() {...}, open: function() {...}, close: function() {...}, write: function() {...}, writeln: function() {...}, ...}
__FFSend: FFau3.xpath=null;try{FFau3.xpath=FFau3.WCD.evaluate("//*[@data-target='#LoginAgentModal']",FFau3.WCD,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;}catch(e){'_FFXPath_Error: '+e;};
__FFRecv: http://www.rumah123.com/modals/login - {toString: function() {...}, target: "", download: "", ping: "", rel: "nofollow", relList: {...}, hreflang: "", ...}
__FFSend: try{FFau3.simulateEvent(FFau3.xpath,'KeyboardEvent','keypress',13);}catch(e){'_FFCmd_Err';};
__FFRecv: 1
__FFSend: FFau3.WCD=window.content.top.document;
__FFRecv: [object HTMLDocument] - {location: {...}, getElementsByName: function() {...}, getItems: function() {...}, open: function() {...}, close: function() {...}, write: function() {...}, writeln: function() {...}, ...}
[object HTMLDocument] - {location: {...}, getElementsByName: function() {...}, getItems: function() {...}, open: function() {...}, close: function() {...}, write: function() {...}, writeln: function() {...}, ...}
__FFSend: FFau3.xpath=null;try{FFau3.xpath=FFau3.WCD.evaluate("//input[@id='username']",FFau3.WCD,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;}catch(e){'_FFXPath_Error: '+e;};
__FFRecv: 
__FFSend: try{FFau3.xpath.value='me@me.com'}catch(e){'_FFCmd_Err';};
__FFRecv: _FFCmd_Err
_FFLoadWait: . loaded in 11ms
[object HTMLDocument] - {location: {...}, getElementsByName: function() {...}, getItems: function() {...}, open: function() {...}, close: function() {...}, write: function() {...}, writeln: function() {...}, ...}
+>12:56:22 AutoIT3.exe ended.rc:0
>Exit code: 0    Time: 12.776

Tried with FF.au3 version 10 and 15, both dont work in this case.

Currently I'm using _WinAPI_Keybd_Event to simulate the TAB key. Works much better than SEND, but not 100% success. If it possible, I prefer using FF.AU3 function to do this task.

This the _WinAPI_Keybd_Event code that working much better than SEND:

BlockInput(1)
Sleep(250)
WinActivate("[CLASS:MozillaWindowClass]", "")
; press TAB 5 times
For $a = 1 to 5
    _WinAPI_Keybd_Event ( 0x09, $KEYEVENTF_EXTENDEDKEY)
    _WinAPI_Keybd_Event ( 0x09, $KEYEVENTF_KEYUP)
    Sleep(200)
Next
Send($Username[1])
_WinAPI_Keybd_Event ( 0x09, $KEYEVENTF_EXTENDEDKEY)
_WinAPI_Keybd_Event ( 0x09, $KEYEVENTF_KEYUP)
Sleep(200)
Send($Password[1])
; press TAB 2 times
_WinAPI_Keybd_Event ( 0x09, $KEYEVENTF_EXTENDEDKEY)
_WinAPI_Keybd_Event ( 0x09, $KEYEVENTF_KEYUP)
Sleep(200)
_WinAPI_Keybd_Event ( 0x09, $KEYEVENTF_EXTENDEDKEY)
_WinAPI_Keybd_Event ( 0x09, $KEYEVENTF_KEYUP)
Sleep(200)
; press SPACE to login
_WinAPI_Keybd_Event ( 0x20, $KEYEVENTF_EXTENDEDKEY)
_WinAPI_Keybd_Event ( 0x20, $KEYEVENTF_KEYUP)
Sleep(200)
BlockInput(0)

Wonder why it works on your side but not on mine?

Link to comment
Share on other sites

The trick is that you have to wait until the elements are visible. This works for me:

#include <FF.au3>

If _FFConnect() Then
    _FFTabAdd('rumah123.com')

    $oInput = _FFXPath('//*[@data-target="#LoginAgentModal"]')
    _FFCmd('FFau3.xpath.click()')

    While True
        _FFXPath('//input[@id="username"]')
        $result = _FFCmd('FFau3.xpath')

        If $result <> '' Then
            ExitLoop
        EndIf
    WEnd

    $cValue = 'me@me.com'
    $result = _FFCmd("FFau3.xpath.value='" & $cValue & "'")
EndIf

 

Link to comment
Share on other sites

  • 1 month later...
On 2/6/2016 at 11:19 PM, Danp2 said:

The trick is that you have to wait until the elements are visible. This works for me:

#include <FF.au3>

If _FFConnect() Then
    _FFTabAdd('rumah123.com')

    $oInput = _FFXPath('//*[@data-target="#LoginAgentModal"]')
    _FFCmd('FFau3.xpath.click()')

    While True
        _FFXPath('//input[@id="username"]')
        $result = _FFCmd('FFau3.xpath')

        If $result <> '' Then
            ExitLoop
        EndIf
    WEnd

    $cValue = 'me@me.com'
    $result = _FFCmd("FFau3.xpath.value='" & $cValue & "'")
EndIf

 

Perfect! Thank  you, Danp2! :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...