selenium 4 new features
이 리뷰는 Selenium 3과 Selenium 4의 차이점과 최신 버전 Selenium 4 (Alpha 3)의 새로운 기능 및 변경 사항을 나열합니다.
셀레늄 4 (알파 3) 버전이 출시되었습니다. 우리 모두 알고 있듯이 Selenium의 창립자는 'Simon Stewart'이며 이제 그는 웹 드라이버뿐만 아니라 Grid 및 IDE 용 새 버전을 도입했습니다.
Selenium 4는 W3C 표준 웹 드라이버 프로토콜을 채택했습니다. Google Chrome, Safari, Internet Explorer, Edge 등과 같은 모든 브라우저는 브라우저 드라이버와 Selenium 웹 드라이버 간의 상호 작용이 이제 W3C 표준 웹 드라이버 프로토콜을 기반으로하기 때문에 W3C 표준을 따릅니다.
학습 내용 :
셀레늄 4 검토
이전 Selenium 명령이 다른 브라우저에서 매우 다르게 작동했기 때문에 W3C 표준과 관련된 변경 사항은 버전을 개선하기 위해 이루어졌습니다.
노트 : 2019 년 4 월에 출시 된 Selenium 4 Alpha 버전.
다운로드 셀레늄 4 알파 버전 아래 이미지와 같이 '4.0.0-alpha-6'을 클릭합니다.
최신 버전의 라이브러리는 Maven Central Repository에 있습니다.
추천 자료 => Selenium 원격 드라이버
셀레늄 3과 셀레늄 4의 차이점
셀레늄 3 | 셀레늄 4 |
---|---|
브라우저 상호 작용은 API의 인코딩 및 디코딩이 필요한 JSON 유선 프로토콜을 기반으로합니다. | 드라이버 및 브라우저 통신이 표준 절차를 따르고 API의 인코딩 및 디코딩이 필요하지 않으므로 W3C 표준 프로토콜을 따르므로 통신이 직접 이루어집니다. |
중요한 아키텍처 관련 변경 사항
# 1) 일부 브라우저에 대한 지원 제거 : 이제 그들은 브라우저 Opera 및 Phantom JS에 대한 지원을 제거했습니다. Opera 사용자는 Chrome 브라우저를 사용할 수 있지만 Phantom JS 사용자는 헤드리스 모드에서 Chrome 또는 Firefox를 사용할 수 있습니다.
# 2) 최적화 된 셀레늄 그리드 : Selenium Grid는 2011 년에 오랫동안 개발되었습니다.
Selenium 4는 설치 및 구성 중, 허브와 노드 시스템 간의 연결 중에 이전에 발생한 문제를 제거하기 위해 새로운 아키텍처를 제공합니다.
두 가지 주요 구성 요소를 포함하는 Selenium Grid에 대해 간단히 이해하겠습니다.
- 마디: 개별 컴퓨터 시스템에서 테스트를 실행하는 데 사용됩니다. 그리드에 여러 노드가있을 수 있습니다.
- 바퀴통: 네트워크에있는 모든 시스템을 제어하는 중심점이며 테스트 실행을 다른 노드에 할당하는 데 도움이되는 하나의 허브 만 포함합니다.
그러나 Selenium 4에서 Grid는 매우 유연합니다. 이를 통해 여러 브라우저, 다른 버전의 브라우저 및 다른 운영 체제에서 사례를 테스트 할 수 있습니다. 지금도 사용자가 서버를 시작하면 허브와 노드를 개별적으로 시작하도록 설정할 필요가 없으며 그리드는 자동으로 노드와 허브로 작동합니다.
또한 Docker, AWS, Azure 등과 같은 고급 도구를 지원하며 DevOps 프로세스에 유용합니다. 이제 Grid는보다 사용자 친화적 인 UI를 가지며 세션, 실행, 용량 등과 관련된 관련 정보를 포함합니다.
>> 클릭 여기 자세한 내용은.
# 3) 표준화 된 문서 : 문서는 모든 사용자에게 필수적인 역할을하며 Selenium 문서는 Selenium 2.0 이후로 업데이트되지 않았습니다.
Selenium 4에서는 웹 드라이버, Grid 및 IDE를 포함하는 Selenium과 관련된 모든 공식 문서를 업데이트하여 최신 변경 사항을 설명했습니다.
# 4) Selenium 4 IDE의 개선 : Selenium IDE는 사용자가 브라우저와 상호 작용하는 데 사용되는 기록 및 재생 도구이며 더 많은 기능과 함께 새 버전의 IDE를 사용할 수 있습니다.
이러한 기능은 다음과 같습니다.
- 브라우저 지원을 향상시킵니다. 이제 새 버전을 사용하면 모든 브라우저 공급 업체가 최신 Selenium IDE에 쉽게 연결할 수 있습니다.
- CLI Runner는 HTML 기반 러너가 아닌 NodeJS를 기반으로하며, 소요 된 실행 시간과 함께 통과 / 실패한 총 테스트 케이스 수를 보고서에 제공하는 병렬 실행을 지원합니다.
# 5) 더 나은 모니터링 : 로깅 및 요청 추적 프로세스는 이제 DevOps에만 국한되지 않으므로 자동화 엔지니어의 디버깅 프로세스를 더 잘 파악할 수 있도록 개선되었습니다.
셀레늄 4의 특징
기능은 다음과 같습니다.
# 1) 특정 웹 요소의 스크린 샷 캡처 :
이전에는 특정 웹 요소의 스크린 샷을 찍을 수있는 규정이 없었기 때문에 사용자가 전체 페이지의 스크린 샷을 찍을 수있었습니다. 그러나 Selenium 4를 사용하면 사용자가 특정 웹 요소의 스크린 샷을 찍을 수 있습니다.
아래 코드를 찾으십시오.
WebElement logo=driver.Findelement (By.xpath(“//div[@id=’divLogo’]//img”)); File file=logo.getScreenshotAs(OutputType.FILE); File destFile =new File(“logo.png”); FileUtils.copyFile(file,destfile);
# 2) 브라우저에서 새 탭을 엽니 다.
이제 Selenium 4에서 사용자는 기존 탭과 함께 새 탭에서 URL을 열 수 있습니다.
자바 배열 복사 방법
예를 들면 : 사용자가 두 개의 다른 탭에서 동시에 두 개의 URL을 열려면 Selenium 4를 사용하여이를 수행 할 수 있습니다.
참조를 위해 아래 코드를 찾으십시오.
driver.get(https://www.google.com/); driver.switchTo().newWindow(WindowType.TAB); driver.navigate().to(https://www.crmpro.com/);
# 3) 브라우저에서 새 창을 엽니 다.
사용자는 Selenium 4를 사용하여 동일한 브라우저에서 새 창을 열 수도 있습니다.
예를 들어 사용자가 동일한 브라우저에서 두 개의 애플리케이션에 액세스하려는 경우 이제이 작업을 수행 할 수 있습니다.
참조를 위해 아래 코드를 찾으십시오.
driver.get(https://www.google.com/); driver.switchTo().newWindow(WindowType.WINDOW); driver.navigate().to(https://www.crmpro.com/);
# 4) 개체 위치 :
이제 Selenium 4로 사용자는 웹 요소 또는 개체의 위치로 좌표, 치수, 높이, 너비 등을 얻을 수 있습니다.
참고로 아래 코드를 찾으십시오.
WebElement logo1=driver.Findelement(By.xpath(“//div[@id=’divLogo’]//img”)); System.out.println(“Height:” +logo.getRect().getDimension().getHeight()); System.out.println(“Height:” +logo.getRect().getDimension().getWidth()); System.out.println(“X Location: “ +Logo.getRect().getX()); System.out.println(“Y Location: “ +Logo.getRect().getY());
# 5) 상대 위치 :
이것들은 Friendly Locators라고도하며,이 기능은 다른 웹 요소 근처에있는 요소를 찾거나 GUI 위치를 기반으로 웹 요소를 찾을 수 있다고 말할 수 있습니다.
Selenium 4에는 5 개의 로케이터가 추가되었습니다.
- 이하(): 지정된 요소에 대해 아래에있는 웹 요소입니다.
- toLeftOf () : 지정된 요소의 왼쪽에있는 대상 웹 요소입니다.
- toRightOf () : 지정된 요소의 오른쪽에 표시되는 대상 웹 요소입니다.
- above () : 지정된 요소에 대해 위에있는 웹 요소입니다.
- 근처에() : 지정된 요소에서 떨어져있는 (약 50 픽셀) 웹 요소를 타겟팅합니다.
노트 : 위의 모든 상대 로케이터 메서드는 'withTagName'메서드를 지원합니다.
아래 예제는 toLeftof () 및 below () 로케이터에 대한 것입니다.
WebElement book; book = driver.Findelement(RelativeLocators.withTagName(“li”).toLeftOf(By.id(“pid1”)) .below(By.id(“pid2”))); String id1=book.getAttribute (“id1”);
아래 예제는 toRightOf () 및 above () 로케이터에 대한 것입니다.
WebElement book1; book1 = driver.Findelement(RelativeLocators.withTagName(“li”).toRightOf(By.id(“pid1”)) .above(By.id(“pid2”))); String id2=book1.getAttribute (“id2”);
# 6) Chrome 개발 도구 :
새 버전의 Selenium에서는 API에 몇 가지 내부 변경 사항이 있습니다. Selenium 3 이전에는 Chrome 드라이버가 원격 웹 드라이버 클래스로 직접 확장되었습니다. 그러나 이제 Selenium 4에서 Chrome 드라이버 클래스는 Chromium 드라이버로 확장됩니다. Chromium Driver 클래스에는 개발 도구에 액세스하기위한 몇 가지 사전 정의 된 메서드가 있습니다.
노트 : Chromium 드라이버는 원격 웹 드라이버 클래스를 확장합니다.
API를 사용하여 다음 작업을 수행 할 수 있습니다.
- 오프라인 네트워크 활성화
- 온라인 네트워크 활성화
- 콘솔 로그 가져 오기
- Insure 웹 사이트로드
결론
이 자습서에서는 Selenium Grid, IDE 및 Selenium WebDriver와 관련된 몇 가지 예정된 기능인 Selenium 4의 새 버전에 대한 소개를 다뤘습니다.
또한 Chrome 개발 도구 인 Relative Locator에 대한 간략한 설명을 보았습니다. 브라우저 지원, 문서 또는 UI 등 Selenium 4에서 많은 것을 기대할 수 있습니다.
작성자 :이 기사는 소프트웨어 품질 및 테스트 프레임 워크 구축에 7 년 이상의 경험을 가진 Akanksha K가 작성했습니다.
추천 도서
- 30 개 이상의 최고의 셀레늄 튜토리얼 : 실제 예제로 셀레늄 배우기
- Selenium IDE 다운로드 설치 및 핵심 기능 소개
- Selenium WebDriver 소개 – Selenium Tutorial # 8
- ChromeDriver Selenium 자습서 : Chrome에서 Selenium Webdriver 테스트
- Firebug를 사용하여 Selenium 스크립트를 만드는 방법-Selenium Tutorial # 4
- 헤드리스 자동화를위한 Selenium PhantomJS 튜토리얼
- 셀레늄 작업 : 셀레늄에서 더블 & 오른쪽 클릭 처리
- Selenium 로케이터 : Selenium에서 XPath를 사용하여 웹 요소 식별 (예)