So the following code works without problems:
Code: Select all
KäynninYhteenveto := UIA.ElementFromHandle(WinExist("Käynnin yhteenveto"))
Kontaktitiedot := KäynninYhteenveto.FindFirstBy("ClassName=ContactDataControl")
Kontaktitiedot.FindFirstBy("AutomationId=StatisticsContactDataInvoicingHyperlink").ControlClick()
Send, {Enter} ; For some reason, ControlClick only sets the focus to the button, but doesn't open the link. That's why I send an Enter here.
WinWaitActive, Laskutettava palvelu, , 10
LaskutettavaPalvelu := UIA.ElementFromHandle(WinExist("Laskutettava palvelu"))
Code: Select all
KäynninYhteenveto := UIA.ElementFromHandle(WinExist("Käynnin yhteenveto"))
Kontaktitiedot := KäynninYhteenveto.FindFirstBy("ClassName=ContactDataControl")
saveConnectionTimeout := UIA.ConnectionTimeout, saveTransactionTimeout := UIA.TransactionTimeout ; Save previous values for timeouts
UIA.ConnectionTimeout := 500, UIA.TransactionTimeout := 200 ; Set shorter timeouts (could experiment with even shorter ones, minimum is 50)
try Kontaktitiedot.FindFirstBy("AutomationId=StatisticsContactDataInvoicingHyperlink").Click() ; Use "try" to avoid the error being thrown
UIA.ConnectionTimeout := saveConnectionTimeout, UIA.TransactionTimeout := saveTransactionTimeout ; Restore previous timeout values
WinWaitActive, Laskutettava palvelu, , 10
LaskutettavaPalvelu := UIA.ElementFromHandle(WinExist("Laskutettava palvelu"))