Что нового

Jenkins и UIAutomate

lettterssino

Знающий
Сообщения
109
Репутация
10
Версия AutoIt
4.4.6
Версия
4.4.6
Может кто сталкивался, пишу автоматизацию под jenkins на Autoit и какая-то хаотичная пляска. То тест проходит, то сам по себе ожидает до бесконечно элемента. На jenkins реализовано, что запускается скомпилированный скрипт из сетевой папка, может ли в этом быть проблема?
Код:
#include <UIAutomate.au3>
#include <File.au3>
#include <Date.au3>
#include <FileOperations.au3>
#include <FileConstants.au3>
#include <Constants.au3>
#include <Encoding.au3>

Opt("WinTitleMatchMode", 2)

Global $Distrib = "*****" ; путь до дистрибутива
Global $Rs = "***********" ; путь до корня
Global $Ro = '*****"' ; путь до корня
Global $sEnvVar = EnvGet("USERNAME")
Global $LogWrite = FileOpen(@DesktopDir & "\TEST.log", 1)


ProgressOn("TEST.au3", 'INSTALL', '', -1, 100, 18)
ProgressSet(0, "Создание репозитории логов")
Creat()
Check()
END1()
Exit 0 ; Тест завершён успешно

Func END1()
    TEST1() ; Запуск выборочной установки
    ClearFile()
    CreatFile()
    OpenFile()
    Global $UndoPersecntD = "10%"
    UndoDel()
    Global $UndoPersecntD = "50%"
    UndoDel()
    DEL()  ; Полное удаление
EndFunc   ;==>END1

Func CreatFile()
    Sleep("3000")
    Run(@ComSpec & ' /c "' & @ProgramFilesDir & $Ro, @ScriptDir, @SW_HIDE)
    $hWnd = WinWaitActive("КОМПАС-3D")
    $oParent = _UIA_GetElementFromHandle($hWnd)

    _UIA_WaitControlTypeElement($oParent, "UIA_MenuItemControlTypeId", "Файл", "LegacyIAccessible.Name", "", 0) ; Создание детали

    $oElement = _UIA_GetControlTypeElement($oParent, "UIA_ButtonControlTypeId", "|LongDelayItem_NewItemButton", "AutomationId")
    _UIA_ElementMouseClick($oElement)
    $oElement = _UIA_GetControlTypeElement($oParent, "UIA_MenuItemControlTypeId", "Деталь")
    _UIA_ElementMouseClick($oElement)
    $oElement = _UIA_GetControlTypeElement($oParent, "UIA_MenuItemControlTypeId", "Файл") ; Сохранение детали
    _UIA_ElementMouseClick($oElement)
    $oElement = _UIA_GetControlTypeElement($oParent, "UIA_MenuItemControlTypeId", "Сохранить")
    _UIA_ElementMouseClick($oElement)
    $hWnd2 = WinWaitActive("Укажите имя файла для записи")
    $oParent2 = _UIA_GetElementFromHandle($hWnd)
    WinWaitActive("Укажите имя файла для записи")
    $oElement = _UIA_GetControlTypeElement($oParent2, "UIA_ButtonControlTypeId", "Сохранить")
    _UIA_ElementMouseClick($oElement)
    Sleep("2500")
    If FileExists("C:\Users\" & $sEnvVar & "\Documents\Деталь.m3d") Then
        Local $hFile = $LogWrite
        _FileWriteLog($hFile, "Сохранение детали = OK")
    Else
        Local $hFile = $LogWrite
        _FileWriteLog($hFile, "Сохранение детали = Error")
        Exit 1
    EndIf
    Sleep("3000")
    $oElement = _UIA_GetControlTypeElement($oParent, "UIA_ButtonControlTypeId", "|LongDelayItem_NewItemButton", "AutomationId") ; Создание сборки
    _UIA_ElementMouseClick($oElement)
    $oElement = _UIA_GetControlTypeElement($oParent, "UIA_MenuItemControlTypeId", "Сборка")
    _UIA_ElementMouseClick($oElement)
    $oElement = _UIA_GetControlTypeElement($oParent, "UIA_MenuItemControlTypeId", "Файл") ; Сохранение сборки
    _UIA_ElementMouseClick($oElement)
    $oElement = _UIA_GetControlTypeElement($oParent, "UIA_MenuItemControlTypeId", "Сохранить")
    _UIA_ElementMouseClick($oElement)
    $hWnd2 = WinWaitActive("Укажите имя файла для записи")
    $oParent2 = _UIA_GetElementFromHandle($hWnd)
    WinWaitActive("Укажите имя файла для записи")
    $oElement = _UIA_GetControlTypeElement($oParent2, "UIA_ButtonControlTypeId", "Сохранить")
    _UIA_ElementMouseClick($oElement)
    Sleep("2500")
    If FileExists("C:\Users\" & $sEnvVar & "\Documents\Сборка.a3d") Then
        Local $hFile = $LogWrite
        _FileWriteLog($hFile, "Сохранение сборки = OK")
    Else
        Local $hFile = $LogWrite
        _FileWriteLog($hFile, "Сохранение сборки = Error")
        Exit 1
    EndIf
    Sleep("3000")
    $oElement = _UIA_GetControlTypeElement($oParent, "UIA_ButtonControlTypeId", "|LongDelayItem_NewItemButton", "AutomationId") ; Создание чертежа
    _UIA_ElementMouseClick($oElement)
    $oElement = _UIA_GetControlTypeElement($oParent, "UIA_MenuItemControlTypeId", "Чертеж")
    _UIA_ElementMouseClick($oElement)
    $oElement = _UIA_GetControlTypeElement($oParent, "UIA_MenuItemControlTypeId", "Файл") ; Сохранение чертежа
    _UIA_ElementMouseClick($oElement)
    $oElement = _UIA_GetControlTypeElement($oParent, "UIA_MenuItemControlTypeId", "Сохранить")
    _UIA_ElementMouseClick($oElement)
    WinWaitActive("Укажите имя файла для записи")
    $oElement = _UIA_GetControlTypeElement($oParent2, "UIA_ButtonControlTypeId", "Сохранить")
    _UIA_ElementMouseClick($oElement)
    Sleep("2500")
    If FileExists("C:\Users\" & $sEnvVar & "\Documents\Чертеж.cdw") Then
        Local $hFile = $LogWrite
        _FileWriteLog($hFile, "Сохранение чертежа = OK")
    Else
        Local $hFile = $LogWrite
        _FileWriteLog($hFile, "Сохранение чертежа = Error")
        Exit 1
    EndIf
    Sleep("3000")
    $oElement = _UIA_GetControlTypeElement($oParent, "UIA_ButtonControlTypeId", "|LongDelayItem_NewItemButton", "AutomationId") ; Создание фрагмента
    _UIA_ElementMouseClick($oElement)
    $oElement = _UIA_GetControlTypeElement($oParent, "UIA_MenuItemControlTypeId", "Фрагмент")
    _UIA_ElementMouseClick($oElement)
    $oElement = _UIA_GetControlTypeElement($oParent, "UIA_MenuItemControlTypeId", "Файл") ; Сохранение фрагмента
    _UIA_ElementMouseClick($oElement)
    $oElement = _UIA_GetControlTypeElement($oParent, "UIA_MenuItemControlTypeId", "Сохранить")
    _UIA_ElementMouseClick($oElement)
    $hWnd2 = WinWaitActive("Укажите имя файла для записи")
    $oParent2 = _UIA_GetElementFromHandle($hWnd)
    WinWaitActive("Укажите имя файла для записи")
    $oElement = _UIA_GetControlTypeElement($oParent2, "UIA_ButtonControlTypeId", "Сохранить")
    _UIA_ElementMouseClick($oElement)
    Sleep("2500")
    If FileExists("C:\Users\" & $sEnvVar & "\Documents\Фрагмент.frw") Then
        Local $hFile = $LogWrite
        _FileWriteLog($hFile, "Сохранение фрагмента = OK")
    Else
        Local $hFile = $LogWrite
        _FileWriteLog($hFile, "Сохранение фрагмента = Error")
        Exit 1
    EndIf
    Sleep("3000")
    $oElement = _UIA_GetControlTypeElement($oParent, "UIA_ButtonControlTypeId", "|LongDelayItem_NewItemButton", "AutomationId") ; Создание текстового документа
    _UIA_ElementMouseClick($oElement)
    $oElement = _UIA_GetControlTypeElement($oParent, "UIA_MenuItemControlTypeId", "Текстовый документ")
    _UIA_ElementMouseClick($oElement)
    $oElement = _UIA_GetControlTypeElement($oParent, "UIA_MenuItemControlTypeId", "Файл") ; Сохранение текстового документа
    _UIA_ElementMouseClick($oElement)
    $oElement = _UIA_GetControlTypeElement($oParent, "UIA_MenuItemControlTypeId", "Сохранить")
    _UIA_ElementMouseClick($oElement)
    $hWnd2 = WinWaitActive("Укажите имя файла для записи")
    $oParent2 = _UIA_GetElementFromHandle($hWnd)
    WinWaitActive("Укажите имя файла для записи")
    $oElement = _UIA_GetControlTypeElement($oParent2, "UIA_ButtonControlTypeId", "Сохранить")
    _UIA_ElementMouseClick($oElement)
    Sleep("2500")
    If FileExists("C:\Users\" & $sEnvVar & "\Documents\Текстовый.kdw") Then
        Local $hFile = $LogWrite
        _FileWriteLog($hFile, "Сохранение текстового документа = OK")
    Else
        Local $hFile = $LogWrite
        _FileWriteLog($hFile, "Сохранение текстового документа = Error")
        Exit 1
    EndIf
    Sleep("3000")
    $oElement = _UIA_GetControlTypeElement($oParent, "UIA_ButtonControlTypeId", "|LongDelayItem_NewItemButton", "AutomationId") ; Создание спецификации
    _UIA_ElementMouseClick($oElement)
    $oElement = _UIA_GetControlTypeElement($oParent, "UIA_MenuItemControlTypeId", "Спецификация")
    _UIA_ElementMouseClick($oElement)
    $oElement = _UIA_GetControlTypeElement($oParent, "UIA_MenuItemControlTypeId", "Файл") ; Сохранение спецификации
    _UIA_ElementMouseClick($oElement)
    $oElement = _UIA_GetControlTypeElement($oParent, "UIA_MenuItemControlTypeId", "Сохранить")
    _UIA_ElementMouseClick($oElement)
    $hWnd2 = WinWaitActive("Укажите имя файла для записи")
    $oParent2 = _UIA_GetElementFromHandle($hWnd)
    WinWaitActive("Укажите имя файла для записи")
    $oElement = _UIA_GetControlTypeElement($oParent2, "UIA_ButtonControlTypeId", "Сохранить")
    _UIA_ElementMouseClick($oElement)
    Sleep("2500")
    If FileExists("C:\Users\" & $sEnvVar & "\Documents\Спецификация.spw") Then
        Local $hFile = $LogWrite
        _FileWriteLog($hFile, "Сохранение спецификации = OK")
    Else
        Local $hFile = $LogWrite
        _FileWriteLog($hFile, "Сорахнение спецификации = Error")
        Exit 1
    EndIf

    WinClose("КОМПАС-3D")
    If WinWaitClose("КОМПАС-3D", "", 10) Then
        Local $hFile = $LogWrite
        _FileWriteLog($hFile, "Сохранение файлов завершено")
    ElseIf Not WinWaitClose("КОМПАС-3D", "", 10) Then
        Local $hFile = $LogWrite
        _FileWriteLog($hFile, "Компас не отвечает")
        Exit 1 ; Компас не отвечает
    EndIf

EndFunc   ;==>CreatFile
Сообщение автоматически объединено:

Решил проблему . Под Jenkins почему-то именно под вин11 открывалась программа в свёрнутом окне. И у программы было 2 окна, одно свёрнутое, второе активное.
 
Последнее редактирование:
Верх