어떻게 셀렌에 원소가 존재하는지 검사합니까

어떻게 셀렌에 원소가 존재하는지 검사합니까

2022-06-03 last update

5 minutes reading Selenium
Selenium은 다양한 테스트 장면을 자동화하는 데 도움을 줍니다.그것은 제품의 회귀 테스트 용례를 자동화하여 품질을 검증하기 위해 양호한 투자 수익(ROI)을 제공했다.
자동화 스크립트를 만들 때, 우리는 웹 페이지에 요소가 있는지 확인해야 하는 상황을 자주 만난다.오늘 우리는 셀렌을 사용하여 이 요구를 만족시키는 기술을 탐색할 것이다.

일러스트 장면


텍스트 Selenium이 브라우저를 자동으로 실행하는지 확인하는 장면을 보여 줍니다.그렇습니다.페이지에 다음과 같이 표시됩니다.
Url:https://www.selenium.dev/

방법 1: 명시적 대기 조건


첫 번째 방법은 예상 조건인 presence of Element Located를 사용하는 것이다. 이것은 Selenium의 현식 대기 개념에 속한다.
셀렌은 특정 조건이 충족될 때까지 명시적 대기 중 지정된 시간을 유지합니다.주어진 시간이 지나면 다음과 같은 자동화 절차를 실행할 것이다.Selenium이 찾으려는 요소를 찾을 때까지 테스트 장면의 실행이 중단됩니다.
사용 방법 1 구현
Java 파일 FirstAssign이 있습니다.java, 코드는 다음과 같습니다.
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.NoSuchElementException;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class FirstAssign {
public static void main(String[] a) {

System.setProperty("webdriver.chrome.driver", "chromedriver");
WebDriver brw = new ChromeDriver();
brw.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
brw.get("https://www.selenium.dev/");
String text = brw.findElement(By.tagName("h1")).getText();

try {
WebDriverWait wait = new WebDriverWait(brw, 5);
Wait.until
(ExpectedConditions.presenceOfElementLocated
((By.tagName("h1"))));

System.out.println("The searched text: " + text + " exists.");

} catch (NoSuchElementException execption) {
System.out.println
("The searched text: " + text + " does not exists.");
execption.printStackTrace();
}

brw.quit();
}

}
구현이 완료되면 다음 Java 파일을 저장하고 실행해야 합니다.

앞의 코드에서 첫 번째 줄에서 일곱 번째 줄은 Selenium에 필요한 Java 가져오기입니다.9행과 10행은 클래스의 이름과 정적 대상 설명을 설명합니다.
열 두 번째 줄에서 프로젝트 디렉터리에서 Chrome 드라이버 실행 파일을 검색하도록 Selenium WebDriver에 지시합니다.
13줄에서 15줄까지 Selenium WebDriver 대상을 만들고 brw 변수에 저장합니다.그리고 우리는 웹 드라이버 대상을 3초 동안 은밀하게 기다리는 것을 도입했다.마지막으로 Chrome 브라우저에서 https://www.selenium.dev/ 응용 프로그램을 엽니다.
16줄에서 검색된 요소를 태그 이름 지정기로 표시한 다음 getText () 방법으로 텍스트를 변수에 저장합니다.
18줄에서 30줄은try-catch 블록에 사용되며 현식 대기의 실현을 가진다.20줄에서 우리는 대상을 만들었다.WebDriverWait는 WebDriver 객체와 5초의 대기 시간을 매개 변수로 합니다.
22줄에는 until 방법이 있다.WebDriver 객체는 검색할 요소가 있는지 확인하기 위해 5초 동안 기다립니다(예상 조건).
일단 예상 요소의 존재를 확인하면, 우리는 컨트롤러에 해당하는 텍스트를 인쇄할 것이다.
요소를 찾을 수 없으면, 캐치 블록에서 처리하는 NoSuchElement Exception 이상을 얻을 수 있습니다.
마지막으로 32줄에서 브라우저 세션을 종료했습니다.
출력
위의 코드를 실행하면 검색 텍스트: Selenium 자동화 브라우저를 사용할 수 있습니다.그렇습니다.출력으로 존재합니다.이러한 방법으로 검색할 요소가 있는지 확인합니다.

메서드 2: getPageSource() 메서드 사용


페이지에 요소가 있는지 확인하는 또 다른 방법은 getPageSource() 메서드를 사용하는 것입니다.이것은 페이지 원본 코드를 생성합니다.
사용 방법2 구현
Java 파일 SecondAssign이 있습니다.java, 코드는 다음과 같습니다.
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;

public class SecondAssign {
public static void main(String[] p) {

System.setProperty("webdriver.chrome.driver", "chromedriver");
WebDriver brw = new ChromeDriver();
brw.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
brw.get("https://www.selenium.dev/");
String text = brw.findElement(By.tagName("h1")).getText();

if (brw.getPageSource()
.contains("Selenium automates browsers"))
{   System.out.println("The searched text: " + text + " exists.");
} else
System.out.println
("The searched text: " + text + " does not   exists.");
brw.quit();
}

}
게시 구현이 Java 파일을 저장하고 실행해야 합니다.

위의 코드에서 1-4행은 Selenium에 필요한 Java 가져오기입니다.
여섯 번째 줄과 일곱 번째 줄은 클래스 이름과 정적 대상 성명이다.
아홉 번째 줄에서 프로젝트 디렉터리에서 Chrome 드라이버 실행 파일을 검색하도록 Selenium WebDriver에 지시합니다.
10줄에서 12줄까지 Selenium WebDriver 대상을 만들고 brw 변수에 저장합니다.그리고 우리는 웹 드라이버 대상을 3초 동안 은밀하게 기다리는 것을 도입했다.마지막으로 Chrome 브라우저에서 https://www.selenium.dev/ 응용 프로그램을 엽니다.
13줄에서 우리는 표기명 위치추적기로 검색된 요소를 찾았다.그런 다음 getText () 방법으로 텍스트를 변수에 저장합니다.
15줄에서 18줄은 ifelse 블록에 사용됩니다.getPageSource () 메서드가 반환하는 페이지 소스 코드에 원하는 요소 텍스트가 포함되어 있는지 확인하고 있습니다.
만약 조건이true로 되돌아온다면, 우리는 컨트롤러에 해당하는 텍스트를 인쇄합니다.그렇지 않으면 17에서 19 줄에서else 블록을 실행해야 합니다.
마지막으로 19 줄에서 Chrome 브라우저를 닫았습니다.
출력
위의 코드를 실행하는 텍스트가 있습니다. - 검색 텍스트: Selenium 자동화 브라우저입니다.그렇습니다.출력으로 존재합니다.이러한 기술을 통해 우리는 우리가 찾고 있는 요소가 사용할 수 있는지 검증했다.

결론


따라서 우리는 웹 페이지에서 요소의 존재를 어떻게 검증하는지 이미 이해했다.우선, 두 번째 방법은 getPageSource() 방법을 기반으로 하는 현식 대기 조건을 사용했습니다.우리는 현식 대기 기술을 사용해야 한다. 왜냐하면 그것은 어느 정도 집행 시간을 줄였기 때문이다.우리는 이 문장이 당신에게 도움이 되기를 바랍니다.추가 Linux 프롬프트를 보려면 추가 프롬프트와 자습서를 참조하십시오.