초록꼬마의 devlog
article thumbnail

2021.12.28(화)

💻 JavaScript 종합 실습

  • 체크박스


  • 회원 가입 양식

🌿 Selenium

  • 세팅
  1. 크롬드라이버 실행 파일 세팅
  2. 웹드라이버 로드
  • 활용
public static void main(String[] args) {
    // Chrome driver 실행파일 세팅
    System.setProperty("webdriver.chrome.driver", "C:/dev/chromedriver.exe");
    // web driver 로드
    WebDriver driver = new ChromeDriver();
    WebDriverWait wait = new WebDriverWait(driver, 10);

    JavascriptExecutor executor = (JavascriptExecutor)driver;

    // checklist2-1) 로그인 페이지로 WebDriver의 get 메서드로 이동
    driver.get("https://iei.or.kr/login/login.kh");

    // 보기 : { 계정명 : khevaltest , 패스워드 : jWsh2j#df }
    WebElement inputId = driver.findElement(By.id("id"));
    WebElement inputPwd = driver.findElement(By.id("password"));

    inputId.sendKeys("khevaltest");
    inputPwd.sendKeys("jwsh2j#df");

    // 로그인 수행은 로그인 버튼에 지정된 자바스크립트 함수를 통해 진행
    executor.executeScript("fnLogin()");

    // checklist2-2) 로그인 수행 후, 페이지 제목에 "마이페이지" 문자열이 포함 될 때까지 프로그램을 대기
    wait.until(ExpectedConditions.titleContains("마이페이지"));

    // 3. 로그인 수행 후, "우리반 게시판" 을 눌러 게시판으로 이동합니다.
    // Link정보를 확인한 후, 자바스크립트를 통해 이동하세요.
    executor.executeScript("location.href='/login/currBoard.kh'");

    // 실행 후 페이지 제목이 "우리반 게시판" 이 될 때까지 프로그램을 대기 시키세요.
    wait.until(ExpectedConditions.titleContains("우리반 게시판"));

    // 4. 우리반 게시판으로 이동한 후, 글 작성 화면으로 이동하세요.
    // 글쓰기 버튼이 가진 자바스크립트를 이용해 이동하세요.
    executor.executeScript("fnWriteForm();");
       // 실행 후, 글쓰기 Form의 제목 부분이 클릭가능 한 시점까지 프로그램을 대기 시키세요.
    wait.until(ExpectedConditions.elementToBeClickable(By.id("title")));

    // 5. 글 작성 화면으로 이동 후, 제목 부분에 다음과 같이 자동으로 작성합니다.
    // "시험문제 답안 작성 중 입니다. 제목 - 홍길동(수험자 이름)"
    // id 속성을 이용해 작성하세요
    WebElement writeTitle = driver.findElement(By.id("title"));
    writeTitle.sendKeys("시험문제 답안 작성 중입니다. 제목 - 강토미");    

    // 6. 글 내용을 작성하려 하면 잘 동작하지 않을 수 있습니다. 원인을 분석하고 조치하세요.
    driver.switchTo().frame("subIframe");

    // 7. 조치 후, 내용 작성부분에 다음과 같이 자동으로 작성합니다.
    // "시험문제 답안 작성 중 입니다. 내용 - 홍길동"
    // 클래스 이름을 이용해 작성하세요.
    List<WebElement> contents = driver.findElements(By.className("tx-content-container"));
    contents.get(0).sendKeys("시험문제 답안 작성 중입니다. 내용 - 강은영");

    // 8. 작성 완료 버튼을 누르려 하면 잘 동작하지 않을 수 있습니다. 원인을 분석하고 조치하세요.
    driver.switchTo().frame("subIframe");

    // 9. 작성완료 버튼을 누르세요.
    List<WebElement> btns = driver.findElements(By.className("common_btn1"));
    btns.get(0).click();
    // 실행은 버튼에 지정된 자바스크립트를 통해 실행하세요.
    executor.executeScript("fnRegister();");

    // 10. 작성이 성공적으로 되었다는 alert 창이 뜨면 확인 버튼을 누르세요.
    // alert() 창이 뜰때까지 대기하다가 누르세요.
    wait.until(ExpectedConditions.alertIsPresent());
    driver.switchTo().alert().accept();

    // 실제 글이 작성되었는지 확인하세요.
    driver.close();
}

📗 homework: 세미프로젝트 준비, JavaScript 평가 준비, JDBC+Java 복습