Как автоматизировать приложение с постоянными свойствами для всей страницы через AutoIt

Я автоматизирую приложение с помощью AutoIt, где свойства всей страницы постоянны.

например, координаты, текст и т.д. одинаковы для кнопки, выпадающего списка и т.д.
Кроме того, идентификатор для всех веб-элементов пуст. Единственным уникальным свойством является ControlClick Coords.

#include <Constants.au3>
run("C:Program Files (x86)CashRBrowserClientCashRBrowserClient.exe")
WinWaitActive("Sears Call Center","","10")
WinActive("Sears Call Center")
If WinExists("Sears Call Center") Then
Send("username{TAB}")
Send("password{Enter}")
EndIf
sleep(500)
ControlClick("Sears Call Center", "", "WebViewHost5", "Left")

также пробовать,

If WinExists("Sears Call Center") Then
;WinActivate("[CLASS:CEFCLIENT];[Instance:1]","[ClassnameNN:WenHost1]")
;sleep(500)
;MouseClick("Left",200,367)
;EndIf`enter code here`

Но не повезло, кроме входа в систему.

Нуждаться в помощи.

1 ответ

  1. Функция WinActive проверяет, активно ли окно, и возвращает True или False. В этом коде эта функция практически ничего не делает.

    WinActive

    Это всегда хорошая идея использовать WinActivate перед WinWaitActive, чтобы избежать проблем с программой, ожидающей навсегда. Лучшим решением было бы:

    While Not WinActive($hWin)
        WinActivate($hwin)
        Sleep(500)
    WEnd
    

    WinActivate

    WinWaitActive

    Попробовать это:

    $username = "username"
    $password = "password"
    
    Run("C:\Program Files (x86)\CashRBrowserClient\CashRBrowserClient.exe")
    
    WinWait("Sears Call Center")
    While Not WinActive("Sears Call Center")
        WinActivate("Sears Call Center")
        Sleep(500)
    WEnd
    
    Send($username)
    Sleep(100)
    Send("{TAB}")
    Sleep(100)
    Send($password)
    Sleep(100)
    Send("{Enter}")
    Sleep(100)