변수, 에코, 경고, 팝업 처리를 저장합니다. Selenium IDE

⚡ 스마트 요약

명령어를 저장합니다 Selenium IDE는 런타임 값을 명명된 변수에 저장하고, echo 명령은 해당 값을 로그에 출력하며, 전용 명령 모음은 경고, 확인 대화 상자 및 여러 브라우저 창 간 전환을 처리합니다.

  • 🔘 변수를 생성하세요: 저장 명령은 값을 입력받습니다. Target 그리고 Value에는 변수 이름이 있습니다.
  • ☑️ 다시 읽어보세요: 명령이 대상이나 값을 허용하는 모든 곳에서 이름을 ${ }로 묶으세요.
  • 디버깅용 출력: `echo` 명령어는 문자열이나 변수를 IDE 로그에 그대로 출력합니다.
  • 🧪 알림이 자동으로 수락됩니다: IDE에서 자동으로 확인 버튼을 클릭하므로 storeAlert를 사용하여 메시지 텍스트를 캡처하세요.
  • 🛠️ 확정을 위해서는 결정이 필요합니다. chooseOkOnNextConfirmation을 대화 상자를 여는 명령 앞에 배치하십시오.
  • 📊 창 전환: selectWindow는 창 제목을 대상으로 지정하고, 대상이 null이면 부모 창을 반환합니다.

변수 저장, 에코, 알림 및 팝업 처리 Selenium IDE

이 튜토리얼에서는 스토어 명령, 에코 명령, 그리고 알림 및 팝업 처리 방법을 배우게 됩니다. Selenium IDE이 명령어들을 함께 사용하면 고정된 기록 스크립트를 런타임에 애플리케이션이 반환하는 값에 반응하는 스크립트로 바꿀 수 있습니다.

⚠️ 버전 관련 유의사항: 아래 스크린샷은 원본에서 가져온 것입니다. Firefox-플러그인 Selenium IDE에서 사용하는 명령어는 셀레네어식 카멜케이스 이름을 사용합니다. 현재 크롬에서는, Firefox Edge 확장 프로그램은 동일한 동작을 유지하지만 대부분의 명령 이름에 공백을 넣어 씁니다. 맵ping 표는 이 글의 끝부분에 나와 있으며, 모든 원래 명령어와 스크린샷은 게시된 그대로 보존되어 있습니다.

Selenium IDE 변수

스토어

변수를 저장하려면 Selenium IDE에서 우리는 다음을 사용합니다. 저장 명령입니다. 아래 그림은 "튜토리얼" 값을 "myVariable"이라는 변수에 저장합니다.

Selenium IDE는 `tutorial` 값을 `myVariable`에 저장하여 명령을 저장합니다.

변수에 접근하려면 변수를 ${ … } 기호로 묶으면 됩니다. 예를 들어, "myVariable" 변수의 값을 "userName" 입력란에 입력하려면 다음과 같이 하면 됩니다. Mercury 투어의 경우 값 필드에 ${myVariable}을 입력합니다.

Selenium IDE에서 사용자 이름 텍스트 상자의 값 필드에 ${myVariable}을 사용하여 명령을 입력합니다.

에코 커맨드 Selenium IDE

저장된 변수는 무언가가 출력하기 전까지는 보이지 않습니다. 바로 그것이 핵심입니다. 에코 해당 명령어는 재생 중에 IDE 로그 창에 메시지를 기록하므로, 저장 명령이 예상대로 실행되었는지 가장 빠르게 확인할 수 있으며, 이를 기반으로 검증을 진행하기 전에 정확한 결과를 얻을 수 있습니다.

이 명령어는 다음 두 가지 형식 모두 허용합니다.

  • 말 그대로 문자열입니다. 텍스트를 안에 넣으세요 Target 예를 들어 분야 로그인 단계 완료긴 스크립트에서 검토 지점을 표시하기 위해 사용합니다.
  • 변수. ${myVariable}을 입력하세요 Target 해당 필드의 저장된 값이 이름 대신 출력됩니다.

echo 명령어를 처음 생각했던 것보다 훨씬 유용하게 만드는 두 가지 습관이 있습니다. 변수를 생성하는 store 명령 직후에 변수를 출력하는 것입니다. 이렇게 하면 오류가 발생했을 때 바로 알 수 있습니다. trac20단계 뒤에 나오는 어설션이 아니라 캡처에 바로 연결하세요. 그리고 로그 창에 모든 명령이 하나의 평면 목록으로 표시되므로 각 메시지 앞에 해당 단계 이름을 붙이세요. 참고로 echo 명령은 로그에만 기록하고 페이지를 변경하거나 테스트를 실패시키지 않으므로 스크립트에 영구적으로 남겨두어도 안전합니다.

StoreElementPresent

이 명령은 지정된 요소의 존재 여부에 따라 "true" 또는 "false" 값을 저장합니다. 아래 스크립트는 부울 값 "true"를 "var1"에, "false"를 "var2"에 저장합니다. 확인을 위해 echo 명령을 사용하여 var1과 var2의 값을 출력해 보겠습니다. URL 아래 그림의 경우 다음과 같이 설정되었습니다. Mercury 투어 홈페이지.

Selenium IDE의 storeElementPresent 메서드가 var1에는 true를, var2에는 false를 저장하고 있으며, 이 내용이 로그에 출력됩니다.

StoreText

이 명령어는 요소의 내부 텍스트를 변수에 저장하는 데 사용됩니다. 아래 예시는 페이스북 회원가입 페이지의 h1 태그 내부 텍스트를 "textVar"라는 변수에 저장하는 방법을 보여줍니다.

Selenium IDE의 storeText 명령이 css=h1을 textVar 변수에 읽어들입니다.

해당 페이지에 같은 종류의 요소가 하나뿐이므로 "css=h1"을 대상으로 사용하는 것이 안전합니다. 아래 이미지가 이를 보여줍니다. Selenium IDE는 "Sign Up"이라는 문자열을 "textVar" 변수에 저장할 수 있었습니다. echo 명령어가 해당 값을 정확하게 출력했기 때문입니다.

Selenium IDE 로그 창에 "Sign Up"이 textVar에 저장된 값으로 출력됩니다.

경고, 팝업 및 다중 Windows

알림창은 아마도 팝업창 중에서 가장 간단한 형태일 것입니다. 가장 흔한 형태는 다음과 같습니다. Selenium 경고를 처리하는 데 사용되는 IDE 명령은 다음과 같습니다.

알림 사용

경고 주장

경고하지 않음 주장

경고 메시지를 가져와 사용자가 지정한 문자열 값과 비교합니다.

AssertAlertPresent

AssertAlertNotPresent

경고가 있는지 여부를 확인합니다.
매장알림 경고 메시지를 검색하여 사용자가 지정한 변수에 저장합니다.
storeAlertPresent 경고가 있으면 TRUE를, 없으면 FALSE를 반환합니다.

경고 확인

확인하지 않음

경고 메시지를 가져와서 사용자가 지정한 문자열 값과 일치하는지 확인합니다.

verifyAlertPresent

verifyAlertNotPresent

경고가 있는지 여부를 확인합니다.

경고 작업 시 다음 두 가지 사항을 기억하십시오.

  • Selenium IDE가 경고 창의 확인 버튼을 자동으로 클릭하기 때문에 실제 경고 메시지를 볼 수 없습니다.
  • Selenium IDE는 페이지의 onload() 함수 내에서 발생하는 알림을 처리할 수 없습니다. 페이지가 완전히 로드된 후에 생성되는 알림만 처리합니다.

이 예제에서는 storeAlert 명령을 사용하여 다음과 같은 상황을 보여줍니다. Selenium IDE는 실제 경고 메시지를 표시하지는 않았지만, 메시지 자체는 가져올 수 있었습니다.

단계 1) In Selenium IDE, 베이스 설정 URL http://jsbin.com으로 이동합니다. 전체 URL http://jsbin.com/usidix입니다. 이 jsbin 코드 조각들은 다음 시점부터 제공됩니다. Firefox-플러그인 시대이며 더 이상 해결되지 않을 수 있습니다. 경고를 발생시키는 버튼이 있는 모든 페이지에서 동일한 결과가 나타납니다.

단계 2) 아래와 같이 스크립트를 작성하세요. `click` 명령은 "Go!" 버튼을 대상으로 하고, `storeAlert`는 메시지를 `alertMessage`에 저장하며, `echo`는 해당 메시지를 출력합니다.

Selenium jsbin 알림 데모 페이지에 대해 click, storeAlert 및 echo 명령을 사용하는 IDE 스크립트

단계 3) 스크립트를 실행해도 실제 경고 메시지가 표시되지 않을 수 있습니다. 아래 로그 창에는 대화 상자가 나타나지 않았음에도 불구하고 캡처된 메시지가 표시됩니다.

Selenium 재생 후 storeAlert에서 가져온 경고 텍스트를 보여주는 IDE 로그

확인

확인 메시지는 알림 메시지와 달리 확인 버튼과 취소 버튼이 있는 팝업 창입니다. 알림 메시지는 확인 버튼만 제공합니다. 확인 메시지를 처리하는 데 사용할 수 있는 명령은 알림 메시지를 처리하는 데 사용할 수 있는 명령과 동일합니다.

  • assertConfirmation / assertNotConfirmation
  • assertConfirmationPresent / assertConfirmationNotPresent
  • 매장확인
  • 점포확인선물
  • 확인 확인 / 확인 안 함
  • verifyConfirmationPresent / verifyConfirmationNotPresent

또한, 이러한 명령은 다음과 같이 알려줍니다. Selenium 확인 버튼과 취소 버튼 중 어떤 버튼을 선택해야 할까요?

  • 다음 확인에서 확인 선택 / 다음 확인에서 확인 후 대기
  • chooseCancelOnNext확인

다음 명령어를 입력하세요 전에 확인 상자를 표시하는 명령은 다음과 같습니다. Selenium IDE는 어떤 옵션을 선택해야 하는지 미리 알고 있습니다. 따라서 스크립트 실행 중에는 실제 확인 상자가 표시되지 않습니다.

사용자가 '확인' 또는 '취소' 버튼을 눌렀는지 여부를 알려주도록 코딩된 버튼이 있는 웹페이지를 테스트해 보겠습니다.

단계 1) In Selenium IDE, 베이스 설정 URL http://jsbin.com으로 이동합니다. 전체 URL http://jsbin.com/enifaf입니다.

단계 2) 아래와 같이 스크립트를 생성하세요. 이번에는 먼저 확인 버튼을 누르겠습니다.

Selenium IDE 스크립트에서 대화 상자를 여는 클릭 전에 chooseOkOnNextConfirmation을 배치합니다.

단계 3) 스크립트를 실행하면 실제 확인 메시지는 표시되지 않지만 웹페이지에는 어떤 버튼을 클릭했는지 여전히 표시되는 것을 확인할 수 있습니다. Selenium IDE가 눌렸습니다.

확인 대화 상자의 확인 버튼이 눌렸음을 보고하는 테스트 페이지

단계 4) chooseOkOnNextConfirmation 명령을 chooseCancelOnNextConfirmation으로 바꾸고 스크립트를 다시 실행하세요. 이제 페이지에 반대되는 선택 사항이 표시됩니다.

Selenium IDE 스크립트를 수정하여 chooseOkOnNextConfirmation 대신 chooseCancelOnNextConfirmation을 사용하도록 했습니다.

배수 Windows

링크를 클릭하여 새 창이 열리면 먼저 다음 단계를 진행해야 합니다. Selenium IDE에서 해당 창을 선택해야만 창 내부의 요소에 접근할 수 있습니다. 기존 IDE에서는 창 제목을 창의 위치로 사용했습니다.

우리는 selectWindow 명령어를 사용하여 창 사이를 전환합니다.

우리는 "첫 번째 창"이라는 제목의 링크(http://jsbin.com/ocinaj/1)를 사용할 것입니다. 해당 페이지의 "여기" 하이퍼링크를 클릭하면 페이스북이 새 창에서 열리고, 그 후에 다음 단계를 안내합니다. Selenium IDE를 사용하여 다음을 수행합니다.

  • 부모 창에서 새로 실행된 페이스북 창으로 제어권을 옮기려면 창 제목을 로케이터로 사용하여 selectWindow 명령을 실행하세요.
  • 새 창의 제목을 확인하십시오.
  • selectWindow 명령을 사용하여 대상 창을 "null"로 설정하고 원래 창을 다시 선택합니다.
  • 현재 선택된 창의 제목을 확인하십시오.

위의 계획은 여기에 표시된 4단계 순서로 변환됩니다.

상위 창에서 새 창으로, 그리고 다시 상위 창으로 전환되는 과정을 나타낸 다이어그램

단계 1) 기초를 설정하세요 URL http://jsbin.com으로 이동합니다.

단계 2) 아래와 같이 스크립트를 작성합니다.

Selenium selectWindow, pause 및 verifyTitle을 사용하여 두 창 사이를 이동하는 IDE 스크립트

새로 실행된 창이 완전히 로드될 때까지 기다린 후 제목을 읽으려면 일시 정지 명령이 필요합니다.

단계 3) 스크립트를 실행합니다. 주의할 점은 테스트 사례 통과했습니다. 즉, 창 사이를 전환하고 제목을 성공적으로 확인할 수 있었습니다.

녹색 패스 결과는 Selenium 두 창 제목이 모두 확인된 후 IDE가 실행됩니다.

selectWindow의 대상을 "null"로 설정하면 자동으로 부모 창이 선택된다는 점을 항상 기억하세요. 이 경우 "link=here" 요소가 있는 창이 선택됩니다.

참고 : 이 튜토리얼이 작성된 이후 페이스북 페이지 제목이 변경되었습니다. 스크립트에서 예상되는 제목을 accordingly 수정하십시오.

현대 Selenium 이러한 명령에 해당하는 IDE 명령어

The Firefox-plugin IDE는 다음과 같은 이유로 서비스가 종료되었습니다. Firefox 웹 확장 아키텍처로 전환되었고, 현재 크롬에서는 Firefox Edge 확장 프로그램은 대부분의 Selenese 명령어를 띄어쓰기된 형태로 이름을 변경했습니다. 동작 방식은 변경되지 않았으므로 아래 표만 있으면 현재 설치된 시스템에서 위의 스크립트를 읽을 수 있습니다.

이 튜토리얼의 레거시 명령어 Current Selenium IDE 명령어
저장 저장
에코 에코
storeText 텍스트를 저장하세요
storeElementPresent 요소가 존재한다고 저장하거나 요소가 존재한다고 주장합니다.
assertAlert / verifyAlert 어설션 경고 / 검증 경고
다음 확인에서 확인을 선택하세요 다음 확인에서 '확인'을 선택하세요.
chooseCancelOnNext확인 다음 확인 시 취소를 선택하세요
selectWindow(제목을 대상으로 함) 핸들이 ${handle}인 창을 선택하세요

주목할 만한 두 가지 차이점이 있습니다. 기존 문서에서는 다루지 않았던 프롬프트에 이제 별도의 명령어가 추가되었습니다. 다음 질문에 답하세요 대화창이 나타나기 전에 답변을 계획합니다. 웹드라이버 응답이 표시되는 프롬프트에 나타납니다. 이미 열려 있는 프롬프트에 입력합니다. 그리고 창 전환은 더 이상 페이지 제목에 의존하지 않습니다. 실행 매장 창문 손잡이 먼저 핸들을 캡처한 다음 전달합니다. 핸들=${yourHandle} 창을 선택하도록 변경되었습니다. 이 변경 사항은 위 메모에 설명된 오류 모드, 즉 사이트에서 페이지 이름을 변경하면 스크립트가 창을 찾지 못하는 문제를 해결합니다. 공식 Selenium IDE 프로젝트 사이트 현재 사용 가능한 전체 명령어 세트를 나열합니다.

자주 묻는 질문

네. ${myVariable}과 ${myvariable}은 서로 다른 변수를 참조하며, 저장되지 않은 변수를 참조하면 오류가 발생하는 대신 빈 문자열이 반환됩니다. 오류 없이 빈 문자열이 반환되는 것을 방지하려면 전체 테스트 환경에서 일관된 명명 규칙을 유지하세요.

예. ${ } 구문은 어떤 경우에도 확장됩니다. Target 또는 값 필드이므로 열기 명령, XPath 또는 CSS 선택기 내에서 작동합니다. 이렇게 하면 기록된 스크립트가 실행 초기에 캡처된 데이터에 의해 구동되는 스크립트로 변환됩니다.

Selenese에는 수학 연산자가 없습니다. 작은 값을 사용하여 스크립트 실행 명령을 사용하십시오. Java변수를 읽고 결과를 반환한 다음, 그 반환 값을 저장하는 스크립트 표현식입니다. 저장하는 모든 값은 문자열로 전달되므로 먼저 변환해야 합니다.

해당 값들은 각 테스트에 특화된 것으로 취급해야 합니다. 이전 테스트에서 설정한 값에 의존하면 테스트 순서에 따라 결과가 달라지고 디버깅이 어려워지므로, 테스트에 필요한 값은 해당 테스트 내부에 저장하거나 테스트 시작 시 데이터 파일에서 읽어와야 합니다.

프롬프트에는 버튼 선택뿐만 아니라 텍스트도 필요합니다. 프롬프트를 여는 명령 앞에 있는 값 필드에 응답을 입력하여 다음 프롬프트에서 응답을 실행하거나, 대화 상자가 이미 화면에 표시된 경우 웹드라이버를 사용하여 보이는 프롬프트에서 응답을 실행하세요.

머신러닝 도구는 시나리오에 대한 일반적인 설명으로부터 명령 시퀀스를 제안하고, 레코더가 생성하는 것보다 더 안정적인 위치 지정자를 제시할 수 있습니다. AI 기반 위치 지정자 복구 기능 또한 유용한데, 저장된 값이 비어 있는 이유는 일반적으로 요소 이름이 변경되었기 때문입니다.

예. 테스트를 내보내세요. Java or Python그런 다음 Copilot이 평면적인 명령 목록을 페이지 객체와 재사용 가능한 대기 시간으로 리팩토링하도록 하세요. 생성된 코드는 IDE에서 이미 닫은 경고 대화 상자가 표시된다고 가정하는 경우가 많으므로 경고 처리는 수동으로 확인해야 합니다.

제목 기반 선택은 모호해져서 잘못된 창이 선택될 수 있습니다. 바로 이러한 이유로 현재 IDE는 핸들을 선호합니다. 창이 열린 직후 '창 핸들 저장'을 사용하여 핸들을 캡처한 다음, 'handle=${yourHandle}'로 전환하세요.

이 게시물을 요약하면 다음과 같습니다.