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.)