Page 1 of 2

Simulate a click on a document

Posted: Thu Mar 28, 2019 9:16 am
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 ?

Re: Simulate a click on a document

Posted: Thu Mar 28, 2019 4:43 pm
by Horizon
+1

Re: Simulate a click on a document

Posted: Thu Mar 28, 2019 5:52 pm
by Silvio.Falconi
oWnd:Click()
oWnd is the map

Re: Simulate a click on a document

Posted: Fri Mar 29, 2019 5:08 am
by Natter
How can I get this "oWnd is the map" ?

Re: Simulate a click on a document

Posted: Fri Mar 29, 2019 9:30 am
by Silvio.Falconi
oWnd is the object of the page where you open the activex

Re: Simulate a click on a document

Posted: Fri Mar 29, 2019 10:03 am
by Natter
Thanks. I usually just used a DOM

Re: Simulate a click on a document

Posted: Fri Mar 29, 2019 6:34 pm
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.

Re: Simulate a click on a document

Posted: Fri Mar 29, 2019 8:51 pm
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

Re: Simulate a click on a document

Posted: Sat Mar 30, 2019 7:50 am
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.

Re: Simulate a click on a document

Posted: Sat Mar 30, 2019 10:56 am
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 

Re: Simulate a click on a document

Posted: Sat Mar 30, 2019 2:35 pm
by Natter
The searched element may not have an identifier, name, type. In this case, there is a unique class -"btn red-flamingo"

getElementsByClassName()

Re: Simulate a click on a document

Posted: Sat Mar 30, 2019 4:26 pm
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

Re: Simulate a click on a document

Posted: Sat Mar 30, 2019 8:30 pm
by Natter
Try so

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

Re: Simulate a click on a document

Posted: Sun Mar 31, 2019 9:51 am
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?

Re: Simulate a click on a document

Posted: Sun Mar 31, 2019 12:24 pm
by Giovany Vecchi
Hello try this way

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