how handle windows pop up selenium using autoit
이 자습서에서는 AutoIT 도구를 사용하여 자동화가 범위를 벗어날 때마다 Selenium에서 Windows 팝업을 처리하는 다양한 방법에 대해 설명합니다.
AutoIT는 Selenium이 Windows 인증 팝업, 플래시 애플리케이션, 데스크톱 애플리케이션 등과 같은 팝업을 처리하는 데 도움이되는 타사 도구입니다.
Selenium은 웹 애플리케이션 자동화로만 제한됩니다. 경우에 따라 Selenium이 처리 할 수없는 응용 프로그램에 Windows 팝업이 나타날 수 있습니다. 이러한 시나리오를 처리하기 위해 AutoIT는 Windows 팝업 및 데스크톱 응용 프로그램을 자동화하는 데 도움을줍니다.
=> 모두를위한 셀레늄 교육 시리즈를 보려면 여기를 방문하십시오.
학습 내용 :
AutoIT 도구 개요
다음은 비디오 자습서입니다.
AutoIT를 사용하여 Windows 팝업 처리
AutoIT는 Windows 기반 응용 프로그램을 처리하는 데 사용되는 타사 도구입니다. 사용되는 스크립팅 언어를 VBScript라고합니다.AutoIt은 또한 프리웨어입니다. 그것은 조합을 사용합니다셀레늄 웹 드라이버로 수행 할 수없는 작업을 자동화하기위한 마우스 이동 및 키보드 스트로크.
AutoIt은 .exe 형식으로 사용되므로 Selenium Automation 스크립트에서 사용할 수 있습니다.
살펴 보겠습니다 예, 여기서 우리는 파일을 올리다 응용 프로그램에.
시나리오는 LinkedIn에 프로필 사진을 업로드하는 것입니다. 이 시나리오의 테스트 단계는 다음과 같습니다.
- URL 입력
- 유효한 사용자 이름, 비밀번호를 입력하고 로그인하십시오.
- 프로필 업로드 아이콘을 클릭합니다.
- 사진을 업로드 할 경로를 입력하면 Windows 팝업이 나타납니다.
3 단계까지는 Selenium Automation이이를 처리 할 수 있습니다. Windows 팝업이 나타나면 AutoIT 스크립트가 해당 부분을 자동화하는 데 사용됩니다.
이제 Windows 팝업에서 작업을 자동화하는 방법을 살펴 보겠습니다.
이는 4 가지 방법으로 처리 할 수 있습니다.
- Windows 명령을 사용하여 특정 파일 업로드.
- 제어 명령을 사용하여 파일 업로드.
- 명령 줄 인수를 사용하여 업로드 할 파일 이름을 지정합니다.
- AutoIT 기록 도구 사용.
모든 스크립트는 AutoItScriptEditor, AutoIt 폴더 패키지에서 사용할 수 있습니다.
로 이동 AutoIt3> SciTE> SciTE.exe ScriptEditor 응용 프로그램을 엽니 다.
# 1) Windows 명령 사용
AutoIt에는 다양한 기능 세트가 있습니다.
당신은 볼 수 있습니다 여기. 이제 Windows 팝업 작업을 자동화하기 위해 먼저 작업을 분석해 보겠습니다. 여기에는 다음이 포함됩니다.
- 현재 창에 포커스를 설정합니다.
- 파일 이름 상자에 업로드 할 파일 이름의 경로를 입력합니다.
- 열기 버튼을 클릭하거나 키보드에서 Enter를 누르십시오.
위의 사항을 자세히 이해하겠습니다.
- 현재 창에 초점 설정
WinWaitActive : 커서의 초점을 지정된 창 이름으로 설정합니다. 이 경우 창의 제목은‘열기’입니다. 따라서 명령을 다음과 같이 지정합니다.WinWaitActive ( '열기').
동일한 Windows 제목은 각 브라우저마다 다릅니다.
말하다, Firefox 용 , 그것은‘파일 업로드’입니다. — 따라서 AutoIT 명령은WinWaitActive ( '파일 업로드').
IE의 경우 '업로드 할 파일'입니다. 따라서 AutoIT 명령은WinWaitActive ( '업로드 할 파일')
Chrome 용 ,‘열기’— AutoIT 명령은WinWaitActive ( '열기')
자동화에 사용하는 브라우저에 따라 창 제목을 지정해야합니다.
2. 파일 이름 상자에 업로드 할 파일 이름의 경로를 입력하십시오.
보내다 – 키보드 스트로크를 전송합니다. 즉, 키보드 동작을 시뮬레이션합니다.
작업은 Enter 키, Shift 키 등을 누를 수 있습니다. 또는 문자열, 숫자 등을 입력합니다.이 예에서는 파일 이름을 입력해야하므로 명령을 사용하여 창에 파일 이름을 입력합니다. –보내기 ( 'D : passport.jpg')
삼. 열기 버튼을 클릭하거나 키보드에서 Enter 키를 누릅니다.
보내기 ({ENTER})– ENTER 키 입력을 창으로 보내면 업로드 작업이 완료됩니다.
자바 개발자 인터뷰 질문 및 답변
생성 된 스크립트를 원하는 위치에 저장하십시오. .au3 형식으로 저장됩니다. 저장되면 .au3 파일을 마우스 오른쪽 버튼으로 클릭하고 컴파일합니다.
컴파일 후 .exe 형식 (실행 형식)으로 변환됩니다. 이 파일은 Selenium 스크립트에서 사용하는 것입니다.
.exe 파일이 생성되면 Selenium Automation 스크립트의 파일을 사용하여 그 안에있는 명령을 실행할 수 있습니다.
Runtime.getRuntime.exec ( '여기에 autoIt exe 파일 이름 지정')
# 2) 제어 명령 사용
AutoIT에는 작업을 수행하기위한 특정 제어 명령이 있습니다. 다음은 AutoIT의 제어 명령 목록입니다.
AutoIT의 이러한 제어 명령을 사용하여 동일한 파일 업로드 시나리오를 자동화하는 방법을 살펴 보겠습니다.
자, 순서대로 Windows 팝업을 자동화하려면 다음 작업을 수행해야합니다.
- 현재 창에 포커스를 설정합니다.
- 파일 이름 상자에 업로드 할 파일 이름의 경로를 입력합니다.
- 열기 버튼을 클릭하거나 키보드에서 Enter를 누르십시오.
위의 사항을 자세히 이해하겠습니다.
- 현재 창에 초점 설정
ControlFocus :지정된 요소에 초점을 설정합니다. 이 경우 편집 텍스트 상자에 포커스를 설정합니다.
설명을 보면 하나 이상의 매개 변수가 필요하다는 것을 알 수 있습니다. AutoIt의 Windows Info 도구를 사용하여 이러한 매개 변수를 전달할 수 있습니다.
하자 아래와 같이 AutoIT 응용 프로그램을 엽니 다.
Windows 정보 도구는 아래와 같이 열립니다.
이 도구는 Windows 응용 프로그램 / 팝업의 요소를 검사하는 데 사용됩니다.
Windows 팝업에서 각 요소의 다양한 속성을 얻으려면 Windows Info Tool의 'Finder'아이콘을 드래그하고 요소를 클릭하여 아래와 같이 속성을 표시합니다.
그림과 같이 도구에 속성이 표시됩니다.
FileName 상자의 경우 속성 및 해당 값은 다음과 같습니다.
- 제목 – 열기
- ClassName – 편집
- 인스턴스 – 1
이러한 속성을 사용하여 제어 명령에 대한 매개 변수를 전달할 수 있습니다.
이제 파일 이름 상자에 포커스를 설정하기 위해 아래와 같이 'ControlFocus'명령을 호출합니다.
- 구문 : ControlFocus ( 'title', 'text', controlID)
- '제목'은 도구에 표시된 제목에 해당합니다.
- 컨트롤 ID는 도구의 ClassName + 인스턴스 조합입니다.
ControlFocus ( 'Open', '', 'Edit1')
어디,
- Open – 제목
- Edit1 – controlID입니다 (controlID = ClassName + Instance).
2. 파일 이름 상자에 업로드 할 파일 이름의 경로를 입력하십시오.
ControlSetText – 요소에 텍스트를 입력합니다.
- 구문 : ControlSetText (“title”,“text”, controlID,“new text”(, flag = 0))
이 경우 텍스트 상자에 파일 이름이 있습니다.
ControlSetText ( 'Open', '', 'Edit1', 'D : passport.jpg')
어디,
- Open – 제목
- Edit1 – controlID입니다 (controlID = ClassName + Instance).
- D : passport.jpg – 업로드 할 파일 이름입니다.
삼. 열기 버튼을 클릭하거나 키보드에서 Enter 키를 누릅니다.
ControlClick – 요소에서 클릭 동작을 수행합니다. 이 예에서는 '열기'버튼을 클릭합니다.
- 구문 : ControlClick (“title”,“text”, controlID (, button =“left”(, clicks = 1 (, x (, y)))))
우리의 경우에는 윈도우 팝업에서 '열기'버튼을 클릭해야합니다.
ControlClick ( '열기', '', '버튼 1')
어디,
- Open – 제목
- Button1 – controlID입니다 (controlID = ClassName + Instance).
다음 명령을 사용하여 Selenium 코드에서 .exe 파일을 호출합니다.Runtime.getRuntime.exec ( '여기에 autoIt exe 파일 이름 지정')
노트: 단일 인스턴스에 여러 파일을 업로드해야하는 경우 변수에 모든 파일 이름을 지정하고 명령에 변수 이름을 전달할 수 있습니다.
ControlFocus – 요소에 포커스를 설정합니다.
$ files – 생성 된 변수이며 업로드 할 텍스트 / 파일 이름을 보유합니다.
ControlSetText – 업로드 할 파일 이름이있는 변수를‘Edit’요소에 전달합니다.
ContolClick – 요소에 대한 클릭 동작을 수행합니다.
# 3) 명령 줄을 사용하여 업로드 할 파일 이름 지정
동일한 절차는 사용자로부터 파일 이름을 얻는 다른 방법으로 접근 할 수 있습니다. 이것은 명령 줄 접근 방식을 사용하여 수행됩니다.
AutoIT에서 파일 이름을 직접 지정하는 대신 아래와 같이 Selenium 코드로 전달합니다.
AutoIT 스크립트 : (Upload.exe)
ControlFocus(“Open”,””,”Edit1”) ControlSetText(“Open”,””,”Edit1”,$cmdLine(1)) ControlClick(“Open”,””,”Button1”)
셀레늄 코드에서 :
다음과 같이 지정합니다.
Runtime.getRuntime.exec(“Path of .exe file”+””+ “FileToUpload”)
이 경우
Runtime.getRuntime.exec(“D:automationUpload.exe”+””+ “D:automationimage.jpg”)
생성 된 파일을 저장하고 컴파일하여 실행 가능한 형식으로 변환합니다.
# 4) AutoIT의 녹화 기능 사용
이 기능은 3.3.14.0 이하 버전에서만 사용할 수 있습니다. 그보다 큰 버전은이 기능을 지원하지 않습니다.
기록 도구를 열려면 AutoIt3> Extras> Au3Record> Au3Record.exe로 이동합니다.
이를 사용하기 시작할 때 마우스 상호 작용이 각 화면 해상도에 따라 다르기 때문에 항상 '마우스 기록'옵션을 선택 취소해야합니다. 항상 키보드 스트로크를 기록하십시오.
도구에서 '기록하려면 클릭'을 선택하면 작업이 기록됩니다.
녹음이 끝나면 'Click to Stop'을 선택하고 파일을 저장하십시오.
저장된 .au3 파일을 열어 수행 한 각 작업에 대해 생성 된 명령을 볼 수 있습니다.
스크립트를 컴파일하고 .exe 파일로 변환합니다.
생성 된 .exe 파일은 아래와 같이 실행을 위해 Selenium 코드에서 직접 사용할 수 있습니다.
Runtime.getRuntime.exec(“D:automationRecord.exe”)
결론
따라서 인증, 파일 업로드 또는 파일 열기 등과 같은 Windows 팝업은 Selenium에 스크립트 파일을 포함하여 AutoIT를 사용하여 처리 할 수 있습니다.
다음 장에서는 이미지 인식 기술을 사용하여 응용 프로그램을 자동화하는 데 사용되는 Sikuli라는 다른 타사 도구에 대해 알아 봅니다.
추천 도서
- Selenium WebDriver에서 경고 / 팝업을 처리하는 방법-Selenium Tutorial # 16
- Cucumber Selenium 튜토리얼 : Cucumber Java Selenium WebDriver 통합
- 상위 10 가지 셀레늄 예외 및이를 처리하는 방법 (정확한 코드)
- Selenium WebDriver 소개 – Selenium Tutorial # 8
- AutoIt 튜토리얼-AutoIt 다운로드, 설치 및 기본 AutoIt 스크립트
- ChromeDriver Selenium 자습서 : Chrome에서 Selenium Webdriver 테스트
- 30 개 이상의 최고의 셀레늄 튜토리얼 : 실제 예제로 셀레늄 배우기
- Selenium 전문가를위한 파트 타임 프리랜서 채용 기회