RPA 인터페이스 요소 포지셔닝 및 조작 기술에 대한 자세한 설명

RPA란 무엇입니까? RPA는 Robotic Process Automation의 약자입니다. "지능형 RPA 전투"에서 우리는 다음과 같이 정의합니다. 컴퓨터 인터페이스에서 인간 작업을 시뮬레이션할 수 있는 특정 기술을 통해 해당 프로세스 작업이 규칙에 따라 자동으로 실행되어 인간을 대체하거나 지원하여 관련 컴퓨터 작업을 완료합니다. 한 문장으로 요약하자면 소프트웨어 로봇을 사용하여 이전에 인간이 수행했던 작업을 자동화합니다.

여기에 이미지 설명 삽입

그렇다면 IPA는 무엇입니까? IPA(지능형 프로세스 자동화) = RPA+AI. 쉽게 말해 AI를 활용해 RPA의 다양한 역량을 강화하는 것이다. 예: RPA의 인터페이스 요소 인식 능력 강화, RPA 작업 실행 중 지능형 의사 결정을 완료할 수 있도록 RPA 권한 부여 등 우리는 보통 RPA를 그리퍼에, AI를 뇌에 비유합니다. AI는 사고를 담당하고 RPA는 행동을 담당합니다. RPA는 컴퓨터의 모든 소프트웨어 및 하드웨어 기능을 호출할 수 있는 디지털 플랫폼입니다. AI는 지능형 구성 요소 중 하나로 존재할 수 있으며 RPA에 의해 호출될 수 있습니다. AI는 지능형 로봇 스케줄링 논리와 같은 RPA의 일부로 강화될 수도 있습니다.

현재 RPA에서 널리 사용되는 CV와 NLP 분야에는 주로 두 가지 AI 기술이 있습니다.

  1. 컴퓨터 시각 인식

CV(컴퓨터 비전) 컴퓨터 비전은 디지털 이미지에서 유용한 정보를 추출하는 방법을 전문으로 하는 분야입니다. RPA에서 일반적인 CV 기술에는 템플릿 일치, 광학 문자 인식, 대상 감지 등이 포함됩니다.

템플릿 매칭 템플릿 매칭: 템플릿 매칭은 큰 이미지에서 작은 이미지(템플릿)를 찾는 알고리즘입니다. 예를 들어 바탕 화면에서 아이콘의 위치를 ​​찾고 양식에서 버튼을 찾는 등의 작업을 수행합니다.
OCR(광학 문자 인식) 광학 문자 인식: 이미지를 입력하면 OCR 모델이 이를 분석 및 처리하여 구조화된 문자 정보(문자 좌표, 문자 고유 값)를 이미지에 출력합니다. 예를 들어 인증 코드 식별, 청구서 정보 추출 등

OD(객체 감지) 대상 감지: 이미지를 컴퓨터에 입력하면 컴퓨터가 그 안의 객체를 분석하게 합니다. 예를 들어 후속 RPA 작업을 위해 애플리케이션 양식의 모든 컨트롤(버튼, 편집 상자 등)을 분석합니다.

  1. 자연어 처리

NLP(Natural Language Processing) 자연어 처리는 텍스트에서 유용한 정보를 추출하는 방법을 전문으로 하는 분야입니다. RPA에서 일반적인 시나리오는 다음과 같습니다.
IDP(지능형 문서 처리) 지능형 문서 처리: 계약 문서의 자동 분석과 같은 것: 많은 수의 계약 문서의 자동 처리, 검토, 검색, 교정 및 기타 작업에 대한 신속한 응답. 문서정보 분석 및 추출 : 기업입찰문서, 내부문서 등 장문의 문서를 분석합니다. HR 담당자와 직위의 정확한 일치: 이력서에서 핵심 정보를 추출하여 인재상을 구성하고 정확한 위치를 일치시킵니다.
텍스트 리뷰: 노란색 안티 리뷰, 텍스트 내 음란물 등 저속한 정보 식별, 종교 및 총기 등 반동적 정보 식별. 텍스트에서 정치적 관련 및 기타 민감한 정보를 식별하는 정치 관련 식별. 광고 필터링, 광고성 정보 식별 및 차단, 이용자 발언 식별 및 분석 텍스트 내 게시물에 욕설, 빗질 등의 스팸 정보를 식별하는 스팸 감지.

RPA의 적용 가치는 주로 다음과 같은 측면에 반영됩니다.
기업 효율성 향상: 시간 측면에서 인간 플레이어의 경우 5 x 8h = 40h입니다. 로봇 플레이어 7 x 24h = 168h는 인간의 4.2배입니다! 결국 RPA 로봇은 하루에 3일 근무하고, 하루 이틀은 잔업을 하고… 그리고 작업시간 연장으로 인한 피로나 정확도 저하 등의 문제가 없을 것입니다.
인간의 위험 감소: 인간은 추상화와 추론에 능숙합니다. 기계는 반복에 능숙합니다. 인간은 피곤할 때 오작동과 오판, 외부 간섭, 주관적인 감정 변동에 취약합니다. RPA 로봇은 특정 작업을 반복해서 수행하는 데 능숙합니다.

비즈니스 시스템 통과: 원래 시스템을 변환할 필요가 없으며 도킹을 달성하기 위해 인터페이스 또는 SDK를 개발할 필요가 없습니다. 그것이 당신이 "비침해적"이라고 듣는 것입니다. 일반적인 애플리케이션은 격리된 애플리케이션 간에 데이터 전송을 완료하는 것입니다.

  1. 개발 경로

RPA의 개발은 대략 다음 단계로 요약할 수 있습니다.
유인 단계: 이 단계에서 RPA는 로봇 자동화의 거의 주요 기능과 기존 데스크탑 자동화 소프트웨어의 모든 작업을 다루는 "가상 비서"로 나타납니다. 직원 PC에 배포하여 업무 효율성을 높입니다. 단점은 end-to-end 자동화 구현이 어렵고 대규모로 적용할 수 없다는 점입니다. 그러나 평균 비즈니스 처리 시간을 효과적으로 줄여 고객 경험을 효과적으로 개선하고 비용을 절감할 수 있습니다.
무인 단계: 이 단계에서 RPA는 "가상 인력"이라고 하며 주요 목표는 엔드 투 엔드 자동화 및 가상 직원 분류를 실현하는 것입니다. 주로 VMS 가상 머신에 배치되어 작업 내용을 정리하고 로봇을 중앙에서 관리하며 로봇 성능을 분석할 수 있습니다. 단점은 RPA 소프트웨어 로봇의 작업에는 여전히 수동 제어 및 관리가 필요하다는 것입니다. 무인 RPA 로봇은 연중무휴 24시간 작동할 수 있으며 인간과 컴퓨터의 상호 작용을 비즈니스 프로세스로 대체하여 효율성을 높이고 비용을 절감할 수 있는 더 큰 가능성을 제공합니다.

자율 RPA 단계: 이 단계에서 RPA의 주요 목표는 종단 간 자동화 및 다기능 가상 인력을 대규모로 달성하는 것입니다. 일반적으로 클라우드 서버 및 SaaS에 배포되며 자동 등급 지정, 동적 로드 밸런싱, 상황 인식, 고급 분석 및 워크플로우가 특징입니다. 단점은 여전히 ​​비정형 데이터를 다루기가 어렵다는 것입니다. 그러나 더 많은 기술이 통합됨에 따라 자율 RPA는 비즈니스 가치를 근본적으로 향상시키고 사용자에게 더 많은 이점을 제공할 수 있습니다.

인지 RPA 단계: 이 단계는 향후 RPA 발전의 방향이 될 것입니다. 인공 지능, 기계 학습 및 자연어 처리와 같은 기술을 사용하여 비정형 데이터 처리, 예측 및 분석, 작업 처리 자동 수락을 실현합니다. 인지 기능을 통해 의사 결정 프로세스는 모두 로봇에 의해 수행되므로 모든 길고 복잡한 작업을 자동화합니다.

01
RPA 핵심 모듈
1. 개발 플랫폼

여기에 이미지 설명 삽입
RPA 개발 플랫폼

개발 플랫폼은 프로세스 설계자가 프로세스를 설계하는 도구입니다. 주로 다음과 같은 기능이 있습니다.

프로세스 설계: 아이디어가 있고 이를 스스로 실행할 수 있는 프로세스로 만들고 싶을 때 이를 사용하여 프로세스를 설계해야 합니다. 시각적 프로그래밍 인터페이스, 낮은 코드 프로그래밍, 비즈니스 논리 설계를 위한 끌어서 놓기 방법을 제공합니다. 프로세스, 하위 프로세스, 타사 라이브러리, 사용자 지정 구성 요소 및 기타 기능과 같은 복잡한 프로세스를 설계할 수 있어야 합니다. 작은 프로세스에서 큰 프로세스로 "캡슐화"하는 기능도 필요합니다. 그리고 "재사용"이라는 개념을 제공하여 바퀴를 재발명하지 않도록 합니다. 또한 프로세스 설계 프로세스에는 몇 가지 필요한 도구가 있습니다.
A. 요소 분석기: 인터페이스에서 우리가 육안으로 보는 버튼, 편집 상자 등은 모두 RPA 세계의 "요소"입니다. 많은 시각적 구성 요소는 "버튼 클릭", "편집 상자에 텍스트 입력" 등과 같은 해당 작업을 수행하기 위해 요소를 입력 매개 변수로 사용합니다. 요소 분석기를 통해 화면에서 대상 요소를 쉽게 선택할 수 있습니다. 요소 분석기를 사용하면 프로세스 설계자는 요소를 식별하고 위치를 지정하기 위해 기본 인터페이스 요소에 대한 기술 지식이 너무 많을 필요가 없습니다.
B. Element Recorder: 이름에서 알 수 있듯이 사용자 작업을 기록하여 여러 시각적 구성 요소를 자동으로 생성합니다. 환경 간섭이 상대적으로 적을 때 종종 유용합니다. 디버깅 및 미세 조정과 결합하여 프로세스 프로토타입을 신속하게 설계할 수 있는 경우가 많습니다.
C. 데이터 캡처: 이것은 화면에서 구조화된 정보를 캡처할 수 있는 특히 흥미로운 기능입니다. 목록, 테이블 또는 트리처럼 보이는 모든 데이터는 캡처를 지원해야 합니다.
D. 스마트 구성 요소 패키지: 즉, AI로 강화된 일부 시각적 구성 요소로, 간단한 드래그 앤 드롭을 통해 다음과 같은 일부 기능을 완료할 수 있습니다
. 기차표 뽑기 등
문서 추출 정보: 조달 계약, 은행 소매 대출 계약, 민사 판결, 채권 안내서 등
문서 지능형 분석: 텍스트 분류, 텍스트 검토, 텍스트 요약, 레이블 추출, 의견 추출, 감정 분석 등
프로세스 디버깅: 프로세스 개발 중에 프로세스에서 문제를 찾기 위해 실시간 디버깅을 수행해야 할 수 있습니다. 임의 중단점, 단일 단계 디버깅, 단일 단계 진입, 단일 단계 종료, 현재 상태(예: 변수) 및 기타 정보 보기. 디버깅 기능을 사용하면 프로세스의 모든 단계에 쉽게 머물면서 프로세스를 조정하고 최적화하기 위해 현재 컨텍스트 상태를 확인할 수 있습니다.
버전 관리: 프로세스가 개발되면 콘솔에 게시해야 합니다. 이 프로세스를 "게시"라고도 합니다. 성숙한 RPA 제품은 완전한 버전 관리 지원이 있어야 하며 현재 프로세스에 대한 특정 버전을 릴리스할 수 있습니다. 모든 이전 버전으로의 롤백도 지원되어야 합니다. 물론 여러 프로세스 설계자가 동일한 프로세스를 동시에 수정할 수 있어야 합니다.

PIP(Picture-in-Picture): 주요 목적은 환경 격리를 제공하는 것입니다. 가상 세션 계층을 제공함으로써 로봇의 작업이 현재 호스트 시스템에서 격리됩니다. 로봇이 실행되는 동안 비즈니스 교사도 서로 간섭하지 않고 정상적으로 컴퓨터를 사용할 수 있습니다.

코드 지원: 기본 API, 블록 API 등을 직접 호출하는 전문가 모드이기도 합니다. 임의 복잡성의 확장을 제공하여 RPA의 기능을 확장할 수 있는 프로그래밍 능력을 갖춘 프로세스 설계 학생을 허용합니다.

2. 제어 센터

여기에 이미지 설명 삽입
RPA 관제 센터
관제 센터는 RPA 로봇의 두뇌로 모든 작업을 담당하는 곳으로 RPA 로봇의 중앙 처리 장치라고도 할 수 있습니다. 주로 다음과 같은 기능이 있습니다.
프로세스 관리: 게시된 시각적 프로세스 관리, 가져오기 및 내보내기, 특정 프로세스 버전 보기 등
봇 관리: RPA 봇을 관리합니다. 여기에는 온라인으로 로봇 검토, 로봇 활성화 및 비활성화, 로봇 공유 여부 등과 같은 기능이 포함됩니다. 원격 데스크톱 기술을 통해 로봇 데스크톱을 직접 볼 수도 있습니다.

작업 관리: 작업은 로봇이 프로세스를 실행하기 위한 템플릿(정적, 정적)으로 특정 프로세스를 선택하고 특정 매개 변수를 구성하여 생성할 수 있습니다. 작업이 생성된 후 제어 센터는 작업의 일정 정보에 따라 RPA 로봇을 예약합니다.

작업 관리: 작업 실행이 시작되면 "작업"(런타임, 동적)이 생성됩니다. 로봇의 런타임에 대한 다양한 정보를 포함합니다. 실행 로그, 실행 상태 등과 같은

데이터 자산: 간단한 이해는 클라우드의 안전한 데이터베이스이며 권한이 만족되면 프로세스는 지정된 데이터를 추가, 삭제, 확인 및 수정할 수 있습니다. 동시에 보안 필드의 개념도 있습니다. 예를 들어 필드가 "암호화" 유형인 경우 해당 값을 개발 플랫폼에서 직접 출력할 수 없어야 합니다.

권한 관리: 역할 기반 권한 관리 모델. 서로 다른 역할을 서로 다른 계정에 할당할 수 있으며 서로 다른 역할에 서로 다른 기능을 할당할 수 있습니다.

테넌트 관리: 멀티 테넌시는 단일 소프트웨어 인스턴스가 여러 사용자 그룹에 서비스를 제공할 수 있는 소프트웨어 아키텍처입니다. SaaS는 다중 테넌트 아키텍처의 예입니다. 데이터는 서로 다른 테넌트 간에 완전히 격리됩니다.

운영 및 유지 관리: RPA 서버 자체를 관리합니다. 서버 리소스 모니터링, 시스템 운영 모니터링 등을 수행할 수 있습니다.

보고서 분석: 제어 센터는 로봇에 대한 모든 데이터를 제공하며 이 데이터를 사용하여 다양한 통계 분석을 수행할 수 있습니다. 예를 들어 특정 프로세스의 실행 성공률, 특정 로봇의 실행 효율성 등을 분석합니다.

로그 감사: 모든 작업은 흔적을 남겨야 합니다. 여기에는 RPA 로봇의 관련 로그와 사용자 작업 관련 로그가 포함되어야 합니다.

3. 로봇

RPA 로봇: 간단히 말해서 관제 센터에서 보낸 작업을 실행하는 것입니다. RPA용 액추에이터!
02
RPA 요소 분석기
사용자 인터페이스 트리, 요소 선택기의 두 가지 개념을 이해해야 합니다.
사용자 인터페이스 트리: 정적 데이터 및 동적 데이터를 포함하여 사용자 인터페이스의 추상 데이터 구조 프레젠테이션입니다. 트리의 각 노드는 사용자 인터페이스의 요소입니다. 각 요소에 대해 속성을 보고 테스트를 실행할 수 있습니다.
요소 선택기: 사용자 인터페이스 트리에서 요소 또는 요소 그룹을 찾는 방법입니다. X라는 제목의 양식을 찾는 것과 같이 요소를 정확하게 찾을 수 있으며 버튼 이름이 X로 시작하는 요소를 찾는 모호한 요소를 찾을 수도 있습니다.

그렇다면 왜 원소 분석기가 필요한가요? 이유는 UI 프레임워크 기술이 너무 많기 때문! 각 기술에는 서로 다른 적응 방법이 필요합니다. 예를 들어 웹을 자동화하려면 웹 자동화 기술을 이해해야 하고, Java 프로그램을 자동화하려면 Java 자동화 기술을 이해해야 하며, SAP 프로그램을 자동화하려면 SAP 자동화 엔진 기술을 이해해야 합니다. 이 UI 프레임워크의 조정은 RPA 벤더가 완료하도록 남겨두어야 합니다. 우리는 우리가 보는 모든 UI 요소를 자동화하기 위한 통합되고 간단한 방법이 필요합니다. 프로세스 설계자는 다음 사항만 이해하면 됩니다. 오! 여기에 버튼이 있는데 클릭해야 합니다!
포지셔닝 방법에서 요소 분석기의 개발 과정을 보면:
절대 좌표 포지셔닝: 자동 음용 보조 플러그인. 화면의 특정 좌표점의 색상 변화를 모니터링 혈색 바의 색상이 회색으로 변하면 황금빛 약을 한 병 마신다.(버튼을 누르면 황금빛 약 아이템 사용)

여기에 이미지 설명 삽입

이미지 인식의 개략도 1
이미지 인식: 큰 이미지에서 작은 이미지를 찾습니다. 화면에 "gopher"가 루프로 나타나는지 확인하고 나타나면 마우스를 조작하여 목표 위치를 클릭하십시오.
여기에 이미지 설명 삽입

이미지 인식 다이어그램 2
선택기 위치 지정: DOM(문서 개체 모델) 문서 개체 모델은 전체 UI 인터페이스를 "트리" 데이터 구조로 추상화하고 XPath, CSS 선택기 및 기타 구문을 사용하여 위치를 찾습니다. 선택자를 매우 "정확하게" 작성할 수도 있고 선택자를 매우 "불분명하게" 작성할 수도 있습니다.

여기에 이미지 설명 삽입
선택기 포지셔닝 DOM 트리의 개략도
지능형 포지셔닝: AI를 사용하여 RPA를 강화합니다. 예를 들어 표적 탐지 관련 알고리즘이 포지셔닝에 사용됩니다.
여기에 이미지 설명 삽입
표적 탐지의 개략도

RPA의 두 가지 핵심 작업: 요소 포지셔닝 및 요소 조작
요소 포지셔닝:
화면 좌표점 기준(HitTest): 주로 요소 분석기의 캡처 기능으로 프로세스 설계자가 대상 요소를 쉽게 선택할 수 있습니다.

선택기 기반: 간단한 선택기 구문을 통해 DOM에서 요소 또는 요소 그룹을 선택합니다. 주로 실행 중인 프로세스 중에 실행 중인 환경에서 대상 요소를 찾기 위해.

CV 기반: 대상 요소는 템플릿 일치 또는 관련 AI 알고리즘으로 찾습니다. 비즈니스 프로그램이 캡처를 지원하지 않을 때 유용합니다!

요소 연산 :
메소드 기반 AT(Assistive Technology) : 비즈니스 프로그램이 AT를 지원하는 경우 AT 메소드를 직접 호출하여 운용할 수 있다. 예를 들어, 버튼의 클릭 기능 호출, 텍스트 상자의 내용 설정 등. 대부분의 비즈니스 프로그램은 AT 방식을 지원합니다!

메시지 기반: Windows에서 양식은 메시지를 통해 통신할 수 있습니다. Window Message를 사용하여 요소를 조작할 수 있습니다.

키보드 및 마우스 시뮬레이션 기반: 대상 요소를 얻은 후 대상 요소가 AT 또는 메시지를 지원하지 않는 경우 키보드 및 마우스 시뮬레이션을 사용하여 간단하고 무례하게 작동할 수도 있습니다. 이것은 또한 가장 인위적인 방법이며 모든 시나리오에서 사용할 수 있으며 결국 사람들도 이런 방식으로 컴퓨터와 상호 작용합니다. 키보드 및 마우스 에뮬레이션도 기본적으로 Windows 메시지를 기반으로 합니다.

자동화 기술은 GUI가 있는지 여부에 따라 분류할 수 있습니다. RPA는 두 가지 유형의 자동화를 동시에 지원하며 GUI 유무에 관계없이 비즈니스 프로그램을 지원합니다.
손쉬운 비 GUI 자동화 작성: 테스트 코드는 상대적으로 작성하기 쉽고 디버그하기 쉽습니다. 환경 변화에 쉽게 영향을 받지 않는 안정적인 작동. 유지 관리가 쉽고 테스트 코드를 자주 업데이트할 필요가 없습니다. 높은 운영 효율성, GUI 자동화에 비해 비 GUI 자동화는 매우 빠릅니다.
GUI 자동화는 주로 광범위한 범위를 다룹니다. 대부분은 UI 프레임워크의 기본 접근성 사양을 따릅니다. 비간섭적이며 비즈니스 애플리케이션에 대한 소스 코드 또는 SDK 액세스가 필요하지 않습니다. (실제로는 UI 프레임워크 계층에서 실제로 침입합니다!) 사용자 작업을 최대한 시뮬레이션하고 사용자 작업 방식을 시뮬레이션합니다.

GUI 자동화를 불안정하게 만드는 몇 가지 요소가 있습니다.

무작위 팝업 창: 자동화 스크립트가 컨트롤을 정상적으로 배치할 수 없거나 작동할 수 없음을 발견하면 GUI 자동화 프레임워크가 자동으로 "비정상적인 장면 복구 모드"로 들어갑니다. "비정상 시나리오 복구 모드"에서 GUI 자동화 프레임워크는 가능한 다양한 대화 상자를 차례로 감지하고 대화 상자 유형이 확인되면 미리 정의된 작업을 즉시 실행합니다(예: "확인" 버튼 클릭). 그런 다음 이전 대화 상자를 다시 시도합니다. 실패한 단계입니다.

컨트롤 속성 변경: 절대 매칭이 더 정확하지만 "퍼지 매칭"이 더 유연하여 컨트롤 인식률을 높일 수 있습니다. 종종 프로세스 설계 프로세스에서 인접 레벨 이전에 대상 요소와 속성 사용을 평가할 필요가 있습니다.

테스트 중인 시스템의 A/B 테스트: 개발 프로세스 중에 표시되는 인터페이스는 런타임 중에 표시되는 인터페이스와 동일하지 않습니다. 서로 다른 분기를 올바르게 식별하려면 테스트 케이스 스크립트에서 분기 처리를 수행해야 합니다.

제어 인식 실패를 유발하는 임의의 페이지 지연도 있습니다. 단계 수준, 페이지 수준 또는 비즈니스 프로세스 수준에 있을 수 있는 재시도 메커니즘을 도입합니다.

03
원소 분석기의 비하인드 기술
1. Win32 API

Microsoft Windows 운영 체제의 기본 API입니다. 장점은 매우 깊고 강력하며 저수준으로 보이며 표준 Windows 컨트롤을 잘 지원한다는 것입니다. 단점은 매우 복잡하고 개발 효율이 낮다는 것입니다. 사용자 지정 컨트롤은 지원되지 않습니다.

창 인식: FindWindow 및 EnumWindows를 통해 창 핸들을 찾은 다음 다른 API GetWindowText, GetWindowRect, GetWindowLong 등을 호출하여 원하는 컨트롤 또는 창을 찾기 위해 창 속성을 가져와야 합니다.
속성 조작 및 획득: SetWindowText 및 GetWindowText를 사용하여 컨트롤에 표시되는 텍스트를 조작하고, SetForegroundWindow를 통해 최상위 창을 설정하고, GetForegroundWindow를 통해 현재 최상위 창을 가져오며 유사한 메서드로는 GetActiveWindow 및 SetActiveWindow가 있습니다. 이론적으로 대부분의 컨트롤 또는 창은 Windows API 및 Windows 메시지를 통해 작동할 수 있으며 일부 컨트롤의 일부 속성도 얻을 수 있습니다.

  1. MSAA

MSAA(Microsoft Active Accessibility)는 Windows 접근성 제어 기능을 향상시키는 기술입니다. MSAA는 본질적으로 자동화된 테스트를 위해 설계되지 않았으며, 화면 읽기 프로그램(마우스를 버튼으로 이동하면 시각 장애인이 컴퓨터를 조작할 수 있도록 도와주는 소리 만들기)를 통해 온 가족이 컴퓨터를 대중화하려는 마이크로소프트의 꿈을 실현했습니다. MSAA는 주로 COM 기반 기술입니다. IAccessible을 사용하여 UI 인터페이스 요소의 정보를 나타냅니다. 이를 얻기 위해 AccessibleObjectFromWindow와 같은 API가 제공됩니다. MSAA는 특정 위치의 요소 정보와 같은 요소 정보를 쿼리할 수 있습니다. 요소 정보가 변경될 때 알림을 받을 이벤트에 등록합니다. 예를 들어 버튼이 비활성화되거나 문자열이 변경되는 경우입니다. 버튼, 드롭다운 상자, 메뉴 등과 같은 인터페이스 요소를 조작합니다.
장점: Windows API와 비교하여 사용자는 IAccessible만 처리하면 되며 이 인터페이스를 통해 얻을 수 있는 제어 정보는 상대적으로 풍부하며 기본 작업은 Windows Message를 통해 실현할 필요가 없습니다. 또 다른 큰 장점은 커스텀 컨트롤의 지원인데, 물론 커스텀 컨트롤을 개발하고 작성할 때 이 컨트롤을 MSAA로 식별할 수 있는 것이 아니라 개발자가 커스텀 컨트롤을 구현할 때 IAccessible 인터페이스를 구현할 수 있고, 이 인터페이스를 통해 일부 속성 및 작업이 노출되며 테스터는 이 컨트롤을 표준 컨트롤로 사용하고 MSAA를 통해 자동화할 수 있습니다. 약간 번거로워 보이지만 최소한 사용자 지정 컨트롤을 자동화할 수 있는 가능성을 제공합니다.

단점: 본질적으로 불충분함, MSAA는 자동화된 테스트를 위해 설계된 적이 없으므로 자동화된 테스트의 요구 사항을 고려하지 않으며 획득한 제어 정보가 Windows API보다 많지만 여전히 자동화된 테스트의 요구 사항에 비해 충분하지 않습니다. , 하나의 기본 작업만 지원하고 다른 작업은 Windows 메시지를 통과해야 합니다. 또한 Microsoft가 WPF를 출시한 후 MSAA의 한계가 점점 더 분명해졌습니다(이는 WPF의 컨트롤 속성이 더 풍부하고 사용자 지정이 가능하며 더 자유롭기 때문에 MSAA로는 설명하기 어렵기 때문입니다). Microsoft가 UIAutomation을 시작한 이유.
작동 방식: 정보를 제공하는 애플리케이션을 서버라고 하며 이벤트 알림 NotifyWinEvent를 처리하고 요소 정보 WM_GETOBJECT를 가져옵니다. 서버는 IAccessible을 통해 요소 정보를 반환합니다. 클라이언트는 AccessibleObjectFromWindow, AccessibleObjectFromPoint, AccessibleObjectFromEvent, accNavigate, get_accParent를 통해 IAccessible을 가져올 수 있습니다.
3. UIA 사용자 인터페이스 자동화

UIA는 WPF를 지원하는 모든 운영 체제에서 지원되는 차세대 Microsoft 접근성 프레임워크입니다. UIA는 대부분의 UI 요소에 대한 프로그래밍 방식 액세스를 제공합니다. WPF 버튼의 Content 속성, Win32 버튼의 Caption 속성, HTML 이미지의 ALT 속성과 같은 대부분의 UI 프레임워크의 공통 속성을 추상화합니다. 이 속성은 모두 UIA의 Name 속성에 매핑됩니다. 또한 UIA는 MSAA와도 호환됩니다. 아키텍처 측면에서 UIA가 표준 컨트롤을 대상으로 할 때 기본적으로 MSAA의 기능을 다루는 UI 자동화 프록시를 통해 MSAA 서버를 호출합니다.
여기에 이미지 설명 삽입
UIA 사용자 인터페이스 자동화
4. JAB

JAB(Java Access Bridge)는 주로 Java 애플리케이션에 대한 요소 정보를 제공하는 프레임워크입니다. 주로 화면 판독기 또는 기타 보조 제어 프로그램용입니다. JAB를 사용하여 Oracle 시리즈 애플리케이션, Kingdee 및 UFIDA와 같은 제조업체에서 개발한 비즈니스 프로그램에 액세스할 수 있습니다.
5. SAP

SAP는 사용자 인터페이스 자동화를 위한 스크립팅 엔진을 제공합니다. SAP 스크립팅 엔진은 SAP의 포괄적인 스크립팅 지원을 제공하는 COM 기반 인터페이스입니다. RZ11 트랜잭션에서 sapgui/user_scripting 매개변수를 TRUE로 설정해야 합니다.
6. 시트릭스 가상 채널

Citrix는 클라이언트와 서버 간의 통신 요구 사항을 충족하는 가상 채널 메커니즘을 제공합니다. 가상 채널을 사용하여 Citrix 가상 데스크톱에 임의의 명령을 보내고 비즈니스에 필요한 정보를 얻을 수 있습니다. Citrix는 ICA(Independent Computing Architecture) 프로토콜을 기반으로 구현됩니다.
여기에 이미지 설명 삽입
Citrix 가상 채널
7. RDP 가상 채널

RDP(원격 데스크톱 프로토콜)는 Microsoft에서 개발한 원격 데스크톱 프로토콜입니다. RDP는 또한 클라이언트와 서버 간의 통신 요구 사항을 충족하는 가상 채널 메커니즘을 제공합니다.
여기에 이미지 설명 삽입
RDP 가상 채널
8. 브라우저 제어

Selenium: 대부분의 브라우저를 지원하는 오픈 소스 브라우저 제어 프레임워크입니다. 시장에 나와 있는 대부분의 웹 크롤러는 Selenium으로 구현됩니다. 또한 Selenium은 프로그래밍 언어에 매우 친숙하며 대부분의 프로그래밍 언어에 대한 액세스를 지원합니다. 그런데... Selenium은 너무 유명해서 많은 기업 웹사이트에서 Selenium에 대한 안티 자동화 작업을 많이 했고, 이는 Selenium이 웹 페이지를 운영할 때 인증 코드 및 무작위 인증 양식과 같은 인증 프로세스로 이어집니다. 또한 Selenium은 IE를 잘 지원하지 않습니다.
IE 자동화: MSHTML/Trident - IWebBrowser2 인터페이스. IE 브라우저는 1997년 IE4에서 출시한 Trident 브라우저 엔진을 사용합니다. IWebBrowser 인터페이스를 제공하여 조작을 자동화합니다. Windows 10의 IE11은 2022-06-15에 유지 관리를 중단했습니다.
Chrome 확장 프로그램: Chrome 브라우저 확장 프로그램은 개발자가 사용자 환경을 맞춤설정할 수 있는 기술입니다. HTML, CSS, JavaScript와 같은 웹 기술을 활용하여 브라우징 경험을 사용자 정의할 수 있습니다.
CDP(Chrome Devtools Protocol): DevTools 프로토콜은 Chrome, Chromium 또는 Blink 엔진 기반의 모든 브라우저에서 지원하는 통신 프로토콜입니다. 프로토콜은 브라우저를 검사, 디버그, 모니터링 등을 할 수 있습니다. Blink는 Chromium의 렌더링 엔진입니다.

  1. 사무 자동화

Microsoft Office 자동화는 주로 COM 기술의 IDispatch 인터페이스를 통해 실현됩니다. IDispatch를 통해 Python, VBS 등 COM 호출을 지원하는 모든 언어로 자동화할 수 있습니다.

추천

출처blog.csdn.net/weixin_57291105/article/details/131846868