셀레늄 자바 치트 시트

셀렌



Selenium은 웹 기반 애플리케이션 전용인 오픈 소스 자동화 테스트 도구입니다.

건축물



쉽게 한




3 구성 요소
  • Selenium Java 클라이언트 라이브러리(Java, C++, .. 포함)
  • 브라우저 드라이버(chromedriver, geckodriver(Firefox), msedgedriver,...)
  • 브라우저(Chrome, Firefox, Edge, Safari 등)


  • 의사소통
  • 셀레늄 라이브러리(클라이언트)........ <-JSON(HTTP를 통한)->
  • 브라우저 드라이버(서버) ............ <-HTTP(HTTP를 통한)->
  • 브라우저
  • 트리거 테스트 -> Selenium(예: Java) 코드가 JSON으로 변환됨
  • HTTP를 통해 BrowserDriver로 보냅니다.
  • 브라우저 드라이버는 해당 브라우저와 통신합니다. JSON을 해석하여 명령을 실행하고 브라우저 드라이버에 응답을 제공합니다.
  • 브라우저 드라이버는 Json에서 Browserresponse를 래핑하고 클라이언트로 다시 보냅니다.

  • 웹드라이버 API 사용



    모든 자동화 Java 작업 파일은 웹 브라우저의 참조를 생성하는 것으로 시작됩니다.
    Webdriver는 인터페이스입니다. ChromeDriver(또는 기타 드라이버)는 인터페이스(인터페이스에 정의된 모든 메서드)를 구현하는 클래스입니다.
    선택한 드라이버 다운로드, 위치에 Selenium 힌트

    System.setProperty("webdriver.chrome.driver", "//home//IdeaProjects//chromedriver");
    


    클래스에 대한 개체를 만들고 구현하려는 Webdriver 인터페이스에 대한 클래스 개체 참조를 만듭니다.

    WebDriver driver = new ChromeDriver();
    


    Webdriver 인터페이스에서 사용할 수 있는 몇 가지 방법이 있습니다. 이러한 메서드는 인스턴스 변수 드라이버를 사용하여 액세스합니다.

     driver.methodName();
    


    브라우저에서 URL 열기 및 닫기




    driver.get("https://google.com");
    //might be checked with
    String url = driver.getCurrentUrl();
    boolean result = driver.getPageSource().contains("String to find");
    String title = driver.getTitle();
    //navigate
    driver.navigate().back();
    driver.navigate().forward();
    //close
    driver.close(); // closes only current window
    driver.quit(); // closes all the windows opened by WebDriver instance
    
    


    로케이터




    driver.findElement(By.id("username")).sendKeys("This is my first code");
    driver.findElement(By.name("pw")).sendKeys("123");
    driver.findElement(By.className("id-ig"));
    


    Xpath 또는 CSS 선택기를 사용할 수 있는 것보다 모든 개체에 ID, className 또는 이름이 있는 것은 아닙니다.
    여러 값이 있는 경우 - Selenium은 첫 번째 값을 식별합니다.

    주의 ID, 클래스



    영숫자 ID인 경우 새로 고칠 때마다 달라지는지 확인합니다.
    수업에는 공백이 없어야 합니다. 복합 수업은 허용되지 않습니다.

    xpath 구문




    //tagName[@attribute='value']  
    //tagName[contains(@attribute,'value')]  -  regEx
    
    driver.findElement(By.xpath("//*[@id='Login']")).click();
    
    traverse to sibling 
    //*[@id='tablist1-tab1']/following-sibling::li[2]
    traverse back to Parent element from Child 
    //*[@id='tablist1-tab1']/parent::ul
    


    자세한 내용은 Xpath Contains, Following Sibling, Ancestor & Selenium AND/OR

    //CSS 선택기에 포함은

    CSS 선택기 구문




    tagName[attribute='value']   
    tagName#id  
    tagname.classname
    tagName[Atrribute*='value'] - regEx
    
     driver.findElement(By.cssSelector("[class='datepicker-days'] th[class='next']")).click();
    
    //contains is *
    driver.findElement(By.cssSelector("[id*='SeniorCitizenDiscount']")).click();   
    
    


    자르기 확장이 있는 브라우저 또는 콘솔에서 다음을 확인하십시오.$("") - CSS, $x("") 또는 xpath의 경우

    여러 값 - Selenium은 첫 번째 값을 식별합니다. - 왼쪽 상단에서 스캔
    id, 클래스, xpath, CSS 선택기, linkedText
    id: 변경 중인지 확인

    좋은 웹페이지 즐겨찾기