top 10 selenium exceptions
예외 처리 프레임 워크를 사용하여 Selenium WebDriver 예외 처리 – Selenium Tutorial # 19
자동화 코드에서 예외를 얻는 것은 매우 일반적입니다. 단어에서 알 수 있듯이‘예외’는 특별하거나 드문 경우입니다.
자동화 코드 실행은 일반적으로 네트워크 안정성 문제, 인터넷 문제, 서버 안정성 등과 같은 실행과 관련된 많은 요인으로 인해 예상대로 수행되지 않을 수 있습니다. 대기 시간이 충분하지 않거나 구문, 매개 변수가 잘못되어 예외가 발생할 수 있습니다.
지난 WebDriver 튜토리얼에서 우리는 다음과 같은 3 가지 다른 유형의 중요한 웹 요소에 대해 배웠습니다. 웹 테이블, 프레임 및 동적 요소 셀레늄 스크립트의 처리 메커니즘
이 프레임 워크 자습서를 진행하기 전에 셀레늄 교육 시리즈, 여기이 튜토리얼에서 우리는 예외 유형 및 Java 및 Selenium 스크립트에서 예외를 처리하는 방법 . 개발자 / 테스터는 예외 처리 프레임 워크를 사용하여 셀레늄 스크립트의 예외를 처리합니다.
학습 내용 :
- 예외 란 무엇입니까?
- 회피 처리 접근 방식의 장단점
- Java 및 Selenium의 예외 유형
- 예외 처리
- Selenium WebDriver의 일반적인 예외
- 일반적인 예외 방지 및 처리
- # 1) org.openqa.selenium.NoSuchElementException
- # 2) org.openqa.selenium.NoSuchWindowException
- # 3) org.openqa.selenium.NoSuchFrameException
- # 4) org.openqa.selenium.NoAlertPresentException
- # 5) org.openqa.selenium.InvalidSelectorException
- # 6) org.openqa.selenium.ElementNotVisibleException
- # 7) org.openqa.selenium.ElementNotSelectableException
- # 8) org.openqa.selenium.TimeoutException
- # 9) org.openqa.selenium.NoSuchSessionException
- # 10) org.openqa.selenium.StaleElementReferenceException
- 결론
- 추천 도서
예외 란 무엇입니까?
예외는 예상 된 출력을 제공하지 않고 Java 프로그램이 갑자기 종료되는 이벤트입니다. Java는 사용자가 예외를 처리 할 수있는 프레임 워크를 제공합니다.
예외를 처리하는 프로세스를 예외 처리라고합니다.
예외는 프로그램의 정상적인 실행 흐름을 방해하므로 처리해야합니다. 예외 처리의 중요한 의도 중 하나는 이러한 중단을 방지하고 프로그램 실행을 계속하는 것입니다. 경우에 따라 특정 예외 발생에 대해 일련의 작업을 수행 할 수 있습니다.
예외가 발생하면 기술적으로‘ 예외 던지기’ 그리고 우리는 추가합니다 시도 / 잡기 같은 블록,
try { // Protected code } catch (ExceptionName e) { // Catch block }
#1) 예외를 던질 수있는 코드 조각이 Try 블록 안에 추가됩니다.
#두) Catch 문은 예외를 포착하여 매개 변수로 사용합니다.
#삼) 예외가 발생하지 않으면 catch 문이 아닌 try 문이 실행됩니다.
예 : 잘못된 로케이터로 인해 셀레늄 스크립트가 실패 할 경우 개발자는 실패 원인을 이해할 수 있어야하며 프로그램에서 예외가 제대로 처리되면 쉽게 해결할 수 있습니다.
내 경험상 가능할 때마다 WebDriver 예외를 피하고 진정으로 예외적 인 경우를 포착하는 것이 가장 좋습니다. try / catch를 사용하여 잘못되어 제어 할 수없는 일을 처리하십시오.
내가 다른 사람을 잡을 수있는 것을 피하십시오!
이것은 저에게 효과가 있었던 최고의 전략입니다.
예를 들면 테스트 서버에로드하는 데 평소보다 더 많은 시간이 걸리는 테스트 페이지를 고려하십시오. 이 페이지에서 작업을 수행하는 동안 자주 예외가 발생합니다. 따라서 매번 이것을 잡는 대신에
- 대기 명령을 추가하고 예외를 피하십시오.
- 정말 예외적 인 경우가 발생한 경우 처리하려면‘Try / Catch’를 사용하십시오.
따라서 예외 가능성이 줄어 듭니다.
회피 처리 접근 방식의 장단점
장점 | 단점 |
---|---|
1)이 접근 방식은 예외가 발생할 가능성을 줄입니다. | 1) 예외를 피하기 위해 추가 코드를 추가하므로 코드 줄이 늘어납니다. |
예외가 여전히 잡히면 2) 확인할 가치가있는 정말 예외적 인 경우입니다. | 2) 웹 드라이버 API, 명령 및 예외에 대해 더 잘 이해해야합니다. |
디버깅 시간을 줄입니다. 자동화 코드는 버그를 찾기위한 것이며 너무 많은 원치 않는 예외를보고 싶지 않은 경우 3) 각 예외의 원인을 찾습니다. | |
4) Catch 블록에서 더 유효한 케이스를 다룹니다. | |
5) 잘못된 실패 감소 | |
6)보다 명확한 보고서 |
이 튜토리얼에서는 회피 및 처리 Selenium WebDriver에서 가장 일반적인 10 가지 예외에 대한 접근 방식. 그 전에 예외 처리 및 Try / Catch 블록에 대한 기본적인 이해를 살펴 보겠습니다.
Java 및 Selenium의 예외 유형
아래에서는 예외 유형과 셀레늄 스크립트에서 예외 처리 프레임 워크를 사용할 수있는 다양한 방법을 설명했습니다.
세 가지 종류의 예외가 있습니다.
- 확인 된 예외
- 확인되지 않은 예외
- 오류
예외 및 오류의 클래스 계층 구조 :
# 1) 확인 된 예외 : 확인 된 예외는 컴파일 시간 동안 처리되며 컴파일 시간 동안 포착 및 처리되지 않으면 컴파일 오류가 발생합니다.
예 : FileNotFoundException , IOException 기타
# 2) 확인되지 않은 예외 : 확인되지 않은 예외의 경우 컴파일러는 처리를 요구하지 않습니다. 컴파일러는 컴파일 시간 동안 무시합니다.
최고의 맬웨어 제거 도구는 무엇입니까
예 : ArrayIndexoutOfBoundException
# 3) 실수 : 시나리오가 치명적이며 프로그램이 복구 할 수없는 경우 JVM에서 오류가 발생합니다. 오류는 try-catch 블록으로 처리 할 수 없습니다. 사용자가 Try catch 블록을 사용하여 오류를 처리하려고해도 오류에서 복구 할 수 없습니다.
예 : 어설 션 오류 , OutOfMemoryError 기타
예외 처리
Try and Catch 블록 :
시도 잡기 블록은 일반적으로 예외를 처리하는 데 사용됩니다. 예외 유형은 올 것으로 예상되는 catch 블록에서 선언됩니다. try 블록에 예외가 발생하면 즉시 제어가 catch 블록으로 이동합니다.
예 :
try { br = new BufferedReader(new FileReader('Data')); } catch(IOException ie) { ie.printStackTrace(); }
예외 유형에 따라 하나의 try 블록에 대해 여러 catch 블록이있을 수 있습니다.
예 :
try { br = new BufferedReader(new FileReader('Data')); } catch(IOException ie) { ie.printStackTrace(); } catch(FileNotFoundException file){ file.printStackTrace(); }
던지다 예외:
던지다 Java의 키워드는 예외를 처리하는 대신 예외를 발생시키는 데 사용됩니다. 확인 된 모든 예외는 메서드에 의해 throw 될 수 있습니다.
예 :
public static void main(String[] args) throws IOException { BufferedReader br=new BufferedReader(new FileReader('Data')); while ((line = br.readLine()) != null) { System.out.println(line); } }
드디어 블록:
드디어 , 블록은 try-catch 블록의 실행과 관계없이 실행되며 try / catch 블록이 완료된 직후에 실행됩니다.
기본적으로 파일 닫기, 데이터베이스 연결 등은 finally 블록에서 닫을 수 있습니다.
예 :
try { br = new BufferedReader(new FileReader('Data')); } catch(IOException ie) { ie.printStackTrace(); } Finally { br.close(); }
위의 예에서 BufferReader finally 블록에서 스트림이 닫힙니다. br.close () try 및 catch 블록의 실행에 관계없이 항상 실행됩니다.
노트 : finally 블록은 catch 블록없이 존재할 수 있습니다. 항상 catch 블록을 가질 필요는 없습니다.
많은 catch 블록이있을 수 있지만 finally 블록은 하나만 사용할 수 있습니다.
던질 수있는 : Throwable은 오류 및 예외에 대한 상위 클래스입니다. 일반적으로 Java에서는 오류를 처리하기가 어렵습니다. 프로그래머가 오류 및 예외 유형에 대해 확신하지 못하는 경우 오류와 예외를 모두 포착 할 수있는 Throwable 클래스를 사용하는 것이 좋습니다.
예 :
try { br = new BufferedReader(new FileReader('Data')); } catch (Throwable t) { t.printStackTrace(); }
Selenium WebDriver의 일반적인 예외
Selenium에는 자체 예외 세트가 있습니다. 셀레늄 스크립트를 개발하는 동안 프로그래머는 이러한 예외를 처리하거나 처리해야합니다.
다음은 셀레늄 예외의 몇 가지 예입니다.
Selenium WebDriver의 모든 런타임 예외 클래스는 수퍼 클래스 WebDriverException에 속합니다.
WebDriverException에는 많은 Exception 클래스가 있지만 일반적으로 다음과 같은 클래스가 표시됩니다.
- NoSuchElementException
- NoSuchWindowException
- NoSuchFrameException
- NoAlertPresentException
- InvalidSelectorException
- ElementNotVisibleException
- ElementNotSelectableException
- TimeoutException
- NoSuchSessionException
- StaleElementReferenceException
세부 :
ElementNotVisibleException : 셀레늄이 요소를 찾으려고하는데 해당 요소가 페이지에 표시되지 않는 경우
NoAlertPresentException : 사용자가 경고 상자를 처리하려고했지만 경고가없는 경우입니다.
NoSuchAttributeException : 속성 값을 가져 오려고했지만 DOM에서 해당 속성을 사용할 수 없습니다.
NoSuchElementException :이 예외는 페이지에서 사용할 수없는 요소에 액세스하기 때문입니다.
WebDriverException : 코드가 WebDriver를 초기화 할 수없는 경우 예외가 발생합니다.
일반적인 예외 방지 및 처리
위에서 언급 한 예외에 대한 회피 및 처리 접근 방식에 대해 살펴 보겠습니다.
# 1) org.openqa.selenium.NoSuchElementException
이 일반적으로 보이는 예외 클래스는 다음의 하위 클래스입니다. NotFoundException 수업. WebDriver가 요소를 찾고 찾을 수없는 경우 예외가 발생합니다.
일반적으로 테스터가 findElement (By, by) 메소드에서 잘못된 요소 로케이터를 작성할 때 발생합니다.
아래 예에서 텍스트 필드의 올바른 ID는 'firstfield'이지만 테스터가 'fistfield'로 잘못 언급했습니다. 이 경우 WebDriver는 요소를 찾을 수 없으며 org.openqa.selenium.NoSuchElementException 던져 질 것이다
driver.findElement(By.id('submit')).click(); Exception Handling: try { driver.findElement(By.id('submit')).click(); } catch (NoSuchElementException e)
이 경우 요소가로드되지 않은 경우에도 예외가 발생합니다.
회피 및 취급 : 대기 명령을 내립니다.
예: 아래의 wait 명령은 ID가 'submit'인 웹 요소가있을 때까지 10 초 동안 대기합니다. 그런 다음 클릭을 시도합니다. 요소를 사용할 수 있지만 여전히 클릭에 실패하면 예외가 발생합니다.
지연된 시간을 사용하는 것은 테스트 자동화에서 단계 사이에 일시 중지를 만드는 일반적인 관행입니다. Try / Catch를 추가하면 대기가 도움이되지 않더라도 프로그램이 계속 진행됩니다.
try { WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); wait.Until(ExpectedConditions.presenceOfElementLocated(By.id('submit'))); try { driver.findElement(By.id('submit')).click(); } catch (WebDriverException e) { System.out.println(“An exceptional case.”); } } catch (TimeOutException e) { System.out.println(“WebDriver couldn’t locate the element”); }
# 2) org.openqa.selenium.NoSuchWindowException
NoSuchWindowException 아래에오다 NotFoundException 수업. WebDriver가 유효하지 않은 창으로 전환하려고 할 때 발생합니다.
아래 코드는 창 핸들이 존재하지 않거나 전환 할 수없는 경우 org.openqa.selenium.NoSuchWindowException을 발생시킬 수 있습니다.
driver.switchTo (). window (handle_1);
회피 및 취급 : 우리는 창 핸들을 사용하여 활성 창 집합을 가져온 다음 동일한 작업을 수행합니다.
아래 예에서는 각 창 핸들에 대해 드라이버 전환이 실행됩니다. 따라서 잘못된 창 매개 변수를 전달할 가능성이 줄어 듭니다.
for (String handle : driver.getWindowHandles()) { try { driver.switchTo().window(handle); } catch (NoSuchWindowException e) { System.out.println(“An exceptional case”); } }
# 3) org.openqa.selenium.NoSuchFrameException
WebDriver가 잘못된 프레임으로 전환하려고하면 NotFoundException 클래스 아래의 NoSuchFrameException이 throw됩니다.
아래 코드는 'frame_11'프레임이 없거나 사용할 수없는 경우 org.openqa.selenium.NoSuchFrameException을 발생시킬 수 있습니다.
driver.switchTo (). frame ( 'frame_11');
예외 처리:
try { driver.switchTo().frame('frame_11'); } catch (NoSuchFrameException e)
이 경우 프레임이로드되지 않은 경우에도 예외가 발생합니다.
회피 및 취급 : 대기 명령을 내립니다.
경험있는 핵심 자바 인터뷰 질문 및 답변
아래 예에서 WebDriver는 프레임을 사용할 수있을 때까지 10 초 동안 대기합니다. 프레임이 사용 가능하고 여전히 예외가있는 경우 포착됩니다.
try { WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); wait.Until(ExpectedConditions.frameToBeAvaliableAndSwitchToIt(frame_11)); try { driver.switchTo().frame('frame_11'); } catch (WebDriverException e) { System.out.println(“An exceptional case”); } } catch (TimeOutException e) { System.out.println(“WebDriver couldn’t locate the frame”); }
# 4) org.openqa.selenium.NoAlertPresentException
NoAlertPresentException 아래에 NotFoundException WebDriver가 사용할 수없는 경고로 전환하려고 할 때 발생합니다.
org.openqa.selenium.NoAlertPresentException 경고가 아직 화면에 없을 때 아래 자동화 코드가 Alert () 클래스에서 accept () 작업을 호출하면 throw됩니다.
driver.switchTo (). alert (). accept ();
예외 처리:
try { driver.switchTo().alert().accept(); } catch (NoSuchAlertException e)
이 경우 경고가 완전히로드되지 않은 경우에도 예외가 발생합니다.
회피 및 취급 : 경고가 예상되는 모든 경우에 특정 시간 동안 항상 명시 적이거나 유창한 대기를 사용합니다. 경고를 사용할 수 있고 여전히 예외가있는 경우 포착됩니다.
try { WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); wait.Until(ExpectedConditions.alertIsPresent()); try { driver.switchTo().alert().accept(); } catch (NoAlertPresentException e) { System.out.println(“An exceptional case”); } } catch (TimeOutException e) System.out.println(“WebDriver couldn’t locate the Alert”); }
# 5) org.openqa.selenium.InvalidSelectorException
이 하위 클래스 NoSuchElementException 클래스는 선택기가 올바르지 않거나 구문 상 유효하지 않을 때 발생합니다. 이 예외는 일반적으로 XPATH 로케이터를 사용할 때 발생합니다.
아래 예를 고려하십시오.
clickXPathButtonAndWait (“// button [@ type =’button’] [100]”);
XPATH 구문이 올바르지 않기 때문에 InvalidSelectorExeption이 발생합니다.
피하고 취급 :이를 방지하려면 로케이터가 잘못되었거나 구문이 잘못 되었기 때문에 사용 된 로케이터를 확인해야합니다. Firebug를 사용하여 xpath를 찾으면이 예외를 줄일 수 있습니다.
아래 코드는 Try / Catch를 사용하여 처리하는 방법을 보여줍니다.
try { clickXPathButtonAndWait('//button[@type='button']'); } catch (InvalidSelectorException e) { }
# 6) org.openqa.selenium.ElementNotVisibleException
ElementNotVisibleException 클래스는 ElementNotInteractableException 수업. 이 예외는 WebDriver가 상호 작용할 수없는 보이지 않는 웹 요소에 대한 작업을 수행하려고 할 때 발생합니다. 즉, 웹 요소가 숨겨진 상태에 있습니다.
예를 들면 아래 코드에서 id가 'submit'인 버튼 유형이 HTML에서 'hidden'인 경우 org.openqa.selenium.ElementNotVisibleException 던져 질 것입니다.
driver.findElement(By.id('submit')).click(); Exception Handling: try { driver.findElement(By.id('submit')).click(); } catch (ElementNotVisibleException e)
이 경우 페이지가 완전히로드되지 않은 경우에도 예외가 발생합니다.
회피 및 취급 : 두 가지 방법이 있습니다. 요소가 완전히 가져올 때까지 대기를 사용할 수 있습니다.
아래 코드는 요소를 위해 10 초를 기다립니다. 요소가 표시되고 여전히 예외가 발생하면 포착됩니다.
try { WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); wait.Until(ExpectedConditions.visibilityOfElementLocated(By.id(”submit”)); try { driver.findElement(By.id('submit')).click(); } catch (WebDriverException e) { System.out.println(“Exceptional case”); } } catch (TimeOutException e) System.out.println(“WebDriver couldn’t find this element visible”); }
# 7) org.openqa.selenium.ElementNotSelectableException
이 예외는 InvalidElementStateException 수업 . ElementNotSelectableException 웹 요소가 웹 페이지에 있지만 선택할 수 없음을 나타냅니다.
예를 들면 ID 'swift'가 비활성화 된 경우 아래 코드는 ElementNotSelectableException을 throw 할 수 있습니다.
드롭 다운 선택 = new Select (driver.findElement (By.id ( 'swift')));
예외 처리:
{
드롭 다운 선택 = new Select (driver.findElement (By.id ( 'swift')));
} catch (ElementNotSelectableException e)
이 경우 잠시 후 요소가 활성화 되어도 예외가 발생합니다.
회피 및 취급 : 요소를 클릭 할 수있을 때까지 기다리는 대기 명령을 추가 할 수 있습니다. 여전히 예외가 있으면 포착됩니다.
try { WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); wait.Until(ExpectedConditions. elementToBeClickable(By.id(”swift”)); try { Select dropdown = new Select(driver.findElement(By.id('swift'))); } catch (WebDriverException e) { System.out.println(“Exceptional case”); } } catch (TimeOutException e) System.out.println(“WebDriver found that this element was not selectable.”); }
# 8) org.openqa.selenium .TimeoutException
이 예외는 명령 완료가 대기 시간보다 오래 걸리는 경우 발생합니다. 대기는 주로 WebDriver에서 ElementNotVisibleException 예외를 피하기 위해 사용됩니다.
때때로 프로그램의 다음 명령 전에 테스트 페이지가 완전히로드되지 않을 수 있습니다. WebDriver가 페이지가 완전히로드되기 전에 웹 페이지에서 요소를 찾으려고하면 ElementNotVisibleException 예외가 발생합니다. 이 예외를 방지하기 위해 대기 명령이 추가됩니다.
그러나 대기 후에도 구성 요소가로드되지 않으면 예외 org.openqa.selenium .TimeoutException 던져 질 것입니다.
driver.manage (). timeouts (). implicitlyWait (10, TimeUnit.SECONDS);
driver.get (“https://www.softwaretestinghelp.com”);
위의 프로그램에서 암시 적 대기 10 초가 추가되었습니다. 페이지 www.softwaretestinghelp.com 10 초 안에로드되지 않으면 TimeoutException이 발생합니다.
피하고 취급 :이를 방지하기 위해 페이지가로드되는 평균 시간을 수동으로 확인하고 대기 시간을 조정할 수 있습니다.
또는 페이지가로드 될 때까지 JavaScript 실행기를 사용하여 명시 적 대기를 추가 할 수 있습니다.
아래 예제에서는 JavaScript 실행기가 사용됩니다. 페이지 탐색 후 'complete'가 반환 될 때까지 20 초 동안 JavaScript return document.readyState를 호출합니다.
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30)); wait.until(webDriver -> ((JavascriptExecutor)webDriver).executeScript('return document.readyState').equals('complete')); driver.get('https://www.softwaretestinghelp.com');
# 9) org.openqa.selenium.NoSuchSessionException
이 예외는 WebDriver.quit ()에 의해 브라우저를 종료 한 후 메서드가 호출 될 때 발생합니다. 이는 충돌과 같은 웹 브라우저 문제로 인해 발생할 수도 있으며 WebDriver는 드라이버 인스턴스를 사용하여 명령을 실행할 수 없습니다.
이 예외를 확인하려면 아래 코드를 실행할 수 있습니다.
driver.quit ()
드롭 다운 선택 = new Select (driver.findElement (By.id ( 'swift')));
피하고 취급 : Selenium Webdriver 테스트 케이스를 실행하려면 항상 안정적인 최신 버전의 브라우저를 선택하십시오.
이 예외는 모든 테스트가 완료 될 때 driver.quit ()를 사용하여 줄일 수 있습니다. 각 테스트 케이스 후에 사용하지 마십시오. 이로 인해 드라이버 인스턴스가 null이고 향후 테스트 케이스가 초기화하지 않고이를 사용하려고 할 때 문제가 발생할 수 있습니다.
아래 코드는 @BeforeSuite TestiNG 주석에 WebDriver 인스턴스를 생성하고 @AfterSuite TestiNG 주석에서 삭제합니다.
@BeforeSuite public void setUp() throws MalformedURLException { WebDriver driver = new FirefoxDriver(); } @AfterSuite public void testDown() { driver.quit(); }
# 10) org.openqa.selenium.StaleElementReferenceException
이 예외는 웹 요소가 웹 페이지에 더 이상 존재하지 않음을 나타냅니다.
이 오류는 ElementNotVisibleException과 동일하지 않습니다.
StaleElementReferenceException은 특정 웹 요소에 대한 개체가 문제없이 프로그램에서 생성 될 때 throw됩니다. 이 요소는 더 이상 창에 없습니다. 이것은
- 다른 페이지로 이동
- DOM이 새로 고쳐졌습니다.
- 프레임 또는 창 스위치
WebElement firstName = driver.findElement (By.id ( 'firstname'));
driver.switchTo (). window (Child_Window);
element.sendKeys ( 'Aaron');
위의 코드에서 firstName 개체가 생성 된 다음 창이 전환되었습니다. 그런 다음 WebDriver는 양식 필드에 'Aaron'을 입력합니다. 이 경우 StaleElementReferenceException이 발생합니다.
피하고 취급 : 올바른 창에서 작업을 수행하고 있는지 확인합니다. DOM 새로 고침으로 인한 문제를 방지하기 위해 Dynamic Xpath를 사용할 수 있습니다.
다른 예를 살펴 보겠습니다.
사용자 이름 필드의 'id'가 'username_1'이고 XPath는 // * [@ id =’firstname_1?] . 페이지를 다시 열면‘id’가‘ '이름 _11’. 이 경우 WebDriver가 요소를 찾을 수 없기 때문에 테스트가 실패합니다. 이 경우 StaleElementReferenceException이 발생합니다.
이 경우 다음과 같은 동적 xpath를 사용할 수 있습니다.
try { driver.findElement(By.xpath(“//*[contains(@id,firstname’)]”)).sendKeys(“Aaron”); } catch (StaleElementReferenceException e)
위의 예에서 동적 XPATH가 사용되며 예외가 여전히 발견되면 포착됩니다.
결론
예외 처리는 모든 자바 프로그램과 셀레늄 스크립트의 필수 부분입니다. 우리는 다음을 통해 강력하고 최적의 코드를 구축 할 수 있습니다. 현명한 방법으로 예외 처리 . 또한 어떤 이유로 인해 프로그램이 실패 할 때 더 나은 보고서를 제공하는 스크립트에서 예외를 처리하는 것도 모범 사례입니다.
여기서는 셀레늄 스크립트에서 구현해야하는 예외 처리의 프로세스와 프레임 워크를 다루려고했습니다.
항상 예외를 처리해야하는 것은 아닙니다. 시도 잡기 블록. 스크립트의 요구 사항에 따라 예외를 throw 할 수도 있습니다.
예외는 프로그램 실행을 중단하므로 무시해서는 안됩니다. 이 자습서에서는 수동 검사 및 코드를 통해 얻을 수있는 기회를 줄이기위한 다양한 예외와 방법을 살펴 보았습니다.
대기를 추가하면‘NoSuchElementException‘,‘ElementNotFoundException‘,‘ElementNotVisibleException‘과 같은 일부 경우를 제어 할 수 있습니다.
다음 튜토리얼 # 20 : 다가오는 튜토리얼에서 우리는 다양한 유형의 테스트 프레임 워크 사용 가능 . 또한 자동화 테스트에서 본격적인 프레임 워크 접근 방식을 사용할 때의 장단점을 연구합니다. 테스트 데이터 기반 프레임 워크에 대해 자세히 설명합니다.
Selenium WebDriver에서 예외 처리와 관련된 쿼리가 있으면 게시하십시오.
추천 도서
- 예제를 사용한 Java 예외 및 예외 처리
- Selenium WebDriver에서 경고 / 팝업을 처리하는 방법-Selenium Tutorial # 16
- AutoIt 튜토리얼-AutoIt 다운로드, 설치 및 기본 AutoIt 스크립트
- Cucumber Selenium 튜토리얼 : Cucumber Java Selenium WebDriver 통합
- Selenium과 JMeter의 통합
- Selenium WebDriver 소개 – Selenium Tutorial # 8
- 30 개 이상의 최고의 셀레늄 튜토리얼 : 실제 예제로 셀레늄 배우기
- Selenium 전문가를위한 파트 타임 프리랜서 채용 기회