FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Simulate a click on a document
Posts: 1392
Joined: Mon May 14, 2007 09:49 AM
Simulate a click on a document
Posted: Thu Mar 28, 2019 09:16 AM

Hi !

Open IE as an Activex and load a page with a map. I need to simulate a click on this page at the point where the mouse cursor is. How can I do that ?

Posts: 1387
Joined: Fri May 23, 2008 01:33 PM
Re: Simulate a click on a document
Posted: Thu Mar 28, 2019 04:43 PM

+1

Regards,



Hakan ONEMLI



Harbour & MSVC 2022 & FWH 23.06
Posts: 7317
Joined: Thu Oct 18, 2012 07:17 PM
Re: Simulate a click on a document
Posted: Thu Mar 28, 2019 05:52 PM

oWnd:Click()
oWnd is the map

Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)

I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
Posts: 1392
Joined: Mon May 14, 2007 09:49 AM
Re: Simulate a click on a document
Posted: Fri Mar 29, 2019 05:08 AM
How can I get this "oWnd is the map" ?
Posts: 7317
Joined: Thu Oct 18, 2012 07:17 PM
Re: Simulate a click on a document
Posted: Fri Mar 29, 2019 09:30 AM

oWnd is the object of the page where you open the activex

Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)

I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
Posts: 1392
Joined: Mon May 14, 2007 09:49 AM
Re: Simulate a click on a document
Posted: Fri Mar 29, 2019 10:03 AM

Thanks. I usually just used a DOM

Posts: 1387
Joined: Fri May 23, 2008 01:33 PM
Re: Simulate a click on a document
Posted: Fri Mar 29, 2019 06:34 PM
Natter wrote:Thanks. I usually just used a DOM


Hi Mr. Natter,

Can you please explain more DOM or give some sample?

Thanks.
Regards,



Hakan ONEMLI



Harbour & MSVC 2022 & FWH 23.06
Posts: 1392
Joined: Mon May 14, 2007 09:49 AM
Re: Simulate a click on a document
Posted: Fri Mar 29, 2019 08:51 PM

Hi, Mr. Horizon

Create Activex object and open website
oAx:Do("Navigate", myURL)

Any page of the website is a Document.
oDc:=oAx:GetProp("Document")

All we see on the page are the elements of the document (buttons, forms, etc.).
There was a map element on my page. I got this element method of a DOM
el:=oDc:getElementById("map")

Using other DOM methods, you can perform various manipulations on the element

Posts: 1387
Joined: Fri May 23, 2008 01:33 PM
Re: Simulate a click on a document
Posted: Sat Mar 30, 2019 07:50 AM
Natter wrote:Hi, Mr. Horizon

Create Activex object and open website
oAx:Do("Navigate", myURL)

Any page of the website is a Document.
oDc:=oAx:GetProp("Document")

All we see on the page are the elements of the document (buttons, forms, etc.).
There was a map element on my page. I got this element method of a DOM
el:=oDc:getElementById("map")

Using other DOM methods, you can perform various manipulations on the element


Thank you.
Regards,



Hakan ONEMLI



Harbour & MSVC 2022 & FWH 23.06
Posts: 1387
Joined: Fri May 23, 2008 01:33 PM
Re: Simulate a click on a document
Posted: Sat Mar 30, 2019 10:56 AM
Hi,

https://vatandas.uyap.gov.tr/main/vatandas/giris.jsp

I want to click "E-Şifre Aracılığıyla Giriş" but, I can not find any name or id?

Can anyone help me?

Code (fw): Select all Collapse
PROCEDURE Web_Deneme()
Local IE, WshShell

    IE       := CreateObject("InternetExplorer.Application")
    WshShell := CreateObject("WScript.Shell")

    IE:Visible := .t.
    IE:Navigate( "https://vatandas.uyap.gov.tr/main/vatandas/giris.jsp" )

    Do While IE:Busy
       SysWait(1)
       SysRefresh() // To Refresh
       Loop
    Enddo
                                            
    Button  := ie:document:getElementsByClassName("a.btn.red-flamingo")
    TRY
       Button[0]:click()
       SysReFresh()
    CATCH
       Msginfo("Could not find DOM element 'button'")
//     IE:Quit()
       return(nil)
    END
        
RETURN
Regards,



Hakan ONEMLI



Harbour & MSVC 2022 & FWH 23.06
Posts: 1392
Joined: Mon May 14, 2007 09:49 AM
Re: Simulate a click on a document
Posted: Sat Mar 30, 2019 02:35 PM

The searched element may not have an identifier, name, type. In this case, there is a unique class -"btn red-flamingo"

getElementsByClassName()

Posts: 1387
Joined: Fri May 23, 2008 01:33 PM
Re: Simulate a click on a document
Posted: Sat Mar 30, 2019 04:26 PM
Natter wrote:The searched element may not have an identifier, name, type. In this case, there is a unique class -"btn red-flamingo"

getElementsByClassName()


Hi,

with this code there is no error but does not clicked() anymore.

Any advice?


Code (fw): Select all Collapse
    Button  := ie:document:getElementsByClassName("btn red-flamingo")
    
    TRY
       Button:click()
       SysReFresh()
    CATCH
       Msginfo("Could not find DOM element 'ilk giriş'")
//     IE:Quit()
       return(nil)
    END
Regards,



Hakan ONEMLI



Harbour & MSVC 2022 & FWH 23.06
Posts: 1392
Joined: Mon May 14, 2007 09:49 AM
Re: Simulate a click on a document
Posted: Sat Mar 30, 2019 08:30 PM

Try so

oEvt:=button:createEventObject()
oEvt:type:="click"
button:fireEvent("onclick", oEvt)

Posts: 1387
Joined: Fri May 23, 2008 01:33 PM
Re: Simulate a click on a document
Posted: Sun Mar 31, 2019 09:51 AM
Natter wrote:Try so

oEvt:=button:createEventObject()
oEvt:="click"
button:fireEvent("onclick", oEvt)


I think I can not find the Button object with
Code (fw): Select all Collapse
Button  := ie:document:getElementsByClassName("btn red-flamingo")


Code (fw): Select all Collapse
   Error description: (DOS Error -2147352570) WINOLE/1009  No exported method: CREATEEVENTOBJECT

Stack Calls
===========
   Called from:  => TOLEAUTO:CREATEEVENTOBJECT( 0 )
   Called from: .\ICRA_LBT.prg => WEB_DENEME( 722 )


after this I have remarked TRY, CATCH, END Statement. tried this.

Code (fw): Select all Collapse
Button  := ie:document:getElementsByClassName("btn red-flamingo")
       Button:click()


it also gives an error
Code (fw): Select all Collapse
   Error description: (DOS Error -2147352570) WINOLE/1009  No exported method: CLICK

Stack Calls
===========
   Called from:  => TOLEAUTO:CLICK( 0 )
   Called from: .\ICRA_LBT.prg => WEB_DENEME( 727 )


Is there any method to see HTMLDocument content to find out button?
Regards,



Hakan ONEMLI



Harbour & MSVC 2022 & FWH 23.06
Posts: 244
Joined: Mon Jun 05, 2006 09:39 PM
Re: Simulate a click on a document
Posted: Sun Mar 31, 2019 12:24 PM

Hello try this way

Button := ie:document:All:Item("btn red-flamingo",0)
Button:Click(.t.)