Simulate a click on a document

Natter
Posts: 524
Joined: Mon May 14, 2007 9:49 am

Simulate a click on a document

Post by Natter »

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 ?
Horizon
Posts: 997
Joined: Fri May 23, 2008 1:33 pm

Re: Simulate a click on a document

Post by Horizon »

+1
Regards,

Hakan ONEMLI

Harbour & VS 2019 & FWH 20.12
User avatar
Silvio.Falconi
Posts: 4956
Joined: Thu Oct 18, 2012 7:17 pm

Re: Simulate a click on a document

Post by Silvio.Falconi »

oWnd:Click()
oWnd is the map
I use : FiveWin for Harbour August 2020 (Revision) - Harbour 3.2.0dev (r1712141320) - Bcc7.30 - xMate ver. 1.15.3 - PellesC
Natter
Posts: 524
Joined: Mon May 14, 2007 9:49 am

Re: Simulate a click on a document

Post by Natter »

How can I get this "oWnd is the map" ?
User avatar
Silvio.Falconi
Posts: 4956
Joined: Thu Oct 18, 2012 7:17 pm

Re: Simulate a click on a document

Post by Silvio.Falconi »

oWnd is the object of the page where you open the activex
I use : FiveWin for Harbour August 2020 (Revision) - Harbour 3.2.0dev (r1712141320) - Bcc7.30 - xMate ver. 1.15.3 - PellesC
Natter
Posts: 524
Joined: Mon May 14, 2007 9:49 am

Re: Simulate a click on a document

Post by Natter »

Thanks. I usually just used a DOM
Horizon
Posts: 997
Joined: Fri May 23, 2008 1:33 pm

Re: Simulate a click on a document

Post by Horizon »

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 & VS 2019 & FWH 20.12
Natter
Posts: 524
Joined: Mon May 14, 2007 9:49 am

Re: Simulate a click on a document

Post by Natter »

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
Horizon
Posts: 997
Joined: Fri May 23, 2008 1:33 pm

Re: Simulate a click on a document

Post by Horizon »

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 & VS 2019 & FWH 20.12
Horizon
Posts: 997
Joined: Fri May 23, 2008 1:33 pm

Re: Simulate a click on a document

Post by Horizon »

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: Select all

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 & VS 2019 & FWH 20.12
Natter
Posts: 524
Joined: Mon May 14, 2007 9:49 am

Re: Simulate a click on a document

Post by Natter »

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

getElementsByClassName()
Horizon
Posts: 997
Joined: Fri May 23, 2008 1:33 pm

Re: Simulate a click on a document

Post by Horizon »

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: Select all

    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 & VS 2019 & FWH 20.12
Natter
Posts: 524
Joined: Mon May 14, 2007 9:49 am

Re: Simulate a click on a document

Post by Natter »

Try so

oEvt:=button:createEventObject()
oEvt:type:="click"
button:fireEvent("onclick", oEvt)
Horizon
Posts: 997
Joined: Fri May 23, 2008 1:33 pm

Re: Simulate a click on a document

Post by Horizon »

Natter wrote:Try so

oEvt:=button:createEventObject()
oEvt:type:="click"
button:fireEvent("onclick", oEvt)
I think I can not find the Button object with

Code: Select all

Button  := ie:document:getElementsByClassName("btn red-flamingo")

Code: Select all

   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: Select all

Button  := ie:document:getElementsByClassName("btn red-flamingo")
       Button:click()
it also gives an error

Code: Select all

   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 & VS 2019 & FWH 20.12
User avatar
Giovany Vecchi
Posts: 129
Joined: Mon Jun 05, 2006 9:39 pm
Location: Brasil

Re: Simulate a click on a document

Post by Giovany Vecchi »

Hello try this way

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