반응형
셀레니움 JAVA 버전 jar 라이브러리 다운로드 후 프로젝트에 추가
http://docs.seleniumhq.org/download/
2.44.0 클릭하여 다운로드
프로젝트에 추가하는 방법
프로젝트 우클릭 > Properties > Java Build Path > Add External JARs.. 클릭 후 해당 라이브러리 선택하여 추가
크롬브라우저 용 드라이버 파일
실행 동영상
소스코드
package work2;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runners.MethodSorters;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.Select;
@FixMethodOrder (MethodSorters.NAME_ASCENDING)
public class INTest {
private static WebDriver driver;
String Title = null;
String URL = null;
String alertText = "";
@BeforeClass
public static void setUp() throws Exception {
System.setProperty("webdriver.chrome.driver", "C:\\chromedriver.exe"); //크롬 드라이버 파일 경로설정
driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); //응답시간 5초설정
driver.get("http://www.naver.com"); //접속할 사이트
}
@Test
public void Step_01_지식인_로그인_Test () throws Exception {
driver.findElement(By.id("svc.kin")).click(); //지식인 클릭
driver.findElement(By.id("login_btn")).click(); //NAVER로그인 클릭
driver.findElement(By.id("id")).sendKeys("ID"); //ID
driver.findElement(By.id("pw")).sendKeys("PASSWORD"); //비번
driver.findElement(By.className("int_jogin")).click(); //로그인 버튼 클릭
}
@Test
public void Step_02_임시저장_Test () throws Exception {
for(String Handle : driver.getWindowHandles()) //새창으로 스위칭
driver.switchTo().window(Handle);
driver.findElement(By.xpath("//*[@id='main_top_2']/div[1]/fieldset[1]/div/a/img")).click();//질문하기 클릭
driver.switchTo().frame("editor"); //질문하기 입력창 iframe으로 스위칭
driver.findElement(By.xpath("//*[@id='title']")).sendKeys("원투쓰리포"); //제목입력
driver.switchTo().frame("SmartEditorIframe"); //내용입력 창 iframe 스위칭
driver.findElement(By.cssSelector("body")).sendKeys("일이삼사"); //내용입력
driver.switchTo().defaultContent(); //스위칭 초기화
//다시 질문하기 창 iframe 스위칭
driver.switchTo().frame(driver.findElement(By.xpath("//*[@id='editor']")));
driver.findElement(By.xpath("//*[@id='au_submit_button']/div[2]/a[1]/img")).click(); //임시저장 클릭
String num = driver.findElement(By.id("temporary_save_count")).getText(); //현재 임시저장 글 수 카운트 추출
Thread.sleep(1000); //너무 빨라 얼럿 창 노출이 안되는 걸 방지하기 위해 슬립 추가
Alert alert = driver.switchTo().alert(); //얼럿 창으로 스위칭
alertText = alert.getText(); //얼럿 창 메시지 추출
alert.accept(); //얼럿 창 확인 클릭
System.out.println(alertText); //얼랏 창 메시지 출력
Thread.sleep(1000);
System.out.println("임시저장 글 개수 : "+num);
driver.findElement(By.xpath("//*[@id='title']")).clear(); //질문 제목 삭제
driver.findElement(By.xpath("//*[@id='title']")).sendKeys("파이브식스세븐에잇"); //질문 다시 입력
driver.switchTo().frame("SmartEditorIframe"); //내용 입력 창 iframe 스위칭
driver.findElement(By.cssSelector("body")).sendKeys("오육칠팔"); //내용입력
driver.switchTo().defaultContent(); //창 스위칭 초기화
//다시 질문하기 창 iframe 스위칭
driver.switchTo().frame(driver.findElement(By.xpath("//*[@id='editor']")));
Thread.sleep(1000);
}
@Test
public void Step_03_다음단계_Test () throws Exception {
driver.findElement(By.xpath("//img[@alt='다음단계']")).click(); //다음단계 버튼 클릭
//카테고리
Thread.sleep(1000);
driver.findElement(By.linkText("디렉토리 직접 선택")).click(); //디렉토리 직접선택 클릭
Select dropdown = new Select(driver.findElement(By.id("choose_dir_d1"))); //첫번째 셀렉 박스를 가져옴
dropdown.deselectAll(); //선택 모두 초기화
dropdown.selectByValue("1"); //value 1인 값을 선택
dropdown = new Select(driver.findElement(By.id("choose_dir_d2"))); //두번째 셀렉박스 가져옴
dropdown.deselectAll(); //이하 동일
dropdown.selectByValue("101");
dropdown = new Select(driver.findElement(By.id("choose_dir_d3")));
dropdown.deselectAll();
dropdown.selectByValue("10103");
dropdown = new Select(driver.findElement(By.id("choose_dir_d4")));
dropdown.deselectAll();
dropdown.selectByValue("1010303");
Thread.sleep(1000);
driver.switchTo().defaultContent(); //창 스위칭 초기화
//질문하기 창 iframe 스위칭
driver.switchTo().frame(driver.findElement(By.xpath("//*[@id='editor']")));
driver.findElement(By.xpath("//*[@id='au_submit_button2']/div[2]/a[1]/img")).click();//임시저장 클릭
Thread.sleep(3000);
Alert alert = driver.switchTo().alert(); //얼럿 창 스위칭
alertText = alert.getText();
alert.accept(); //얼럿 확인 클릭
System.out.println("다른제목으로 "+alertText);
String num = driver.findElement(By.id("temporary_save_count")).getText(); //임시저장 카운트 추출
System.out.println("임시저장 글 개수 : "+num);
}
@Test
public void Step_04_이전_글_임시저장_삭제_Test () throws Exception {
// 임시저장 창
driver.findElement(By.className("_tempsave_open_close")).click(); //임시저장 글 클릭
driver.switchTo().defaultContent(); //창 초기화
driver.switchTo().frame(driver.findElement(By.xpath("//*[@id='editor']"))); //질문하기 iframe 창 스위칭
String info = driver.findElement(By.className("info_tempsave")).getText(); //임시저장 창 안내 글 추출
System.out.println("임시저장 창 " + info);
WebElement tempList = driver.findElement(By.className("tempsave_list")); //임시저장 글 목록 가져옴
List<WebElement> list = tempList.findElements(By.className("q_on")); //목록을 리스트에 넣어둠
//이전 글이니까 2번째인 1번 목록 삭제 버튼을 클릭
list.get(1).findElement(By.tagName("img")).click();
Thread.sleep(3000);
Alert alert = driver.switchTo().alert(); //삭제 확인 얼럿 창
alertText = alert.getText();
alert.accept(); //확인 클릭
System.out.println("이전" + alertText);
}
@Test
public void Step_05_임시저장_삭제_Test () throws Exception {
/*******이전 글 삭제와 동일*******/
driver.switchTo().defaultContent();
driver.switchTo().frame(driver.findElement(By.xpath("//*[@id='editor']")));
WebElement tempList1 = driver.findElement(By.className("tempsave_list"));
List<WebElement> list1 = tempList1.findElements(By.className("q_on"));
//여기서 현재글 삭제를 위해 1번째인 0번째 목록 삭제버튼 클릭
list1.get(0).findElement(By.tagName("img")).click();
Thread.sleep(3000);
Alert alert = driver.switchTo().alert();
alertText = alert.getText();
alert.accept();
System.out.println(alertText);
Thread.sleep(1000);
String num = driver.findElement(By.id("temporary_save_count")).getText();
System.out.println("임시저장 글 개수 : " + num);
Thread.sleep(1000);
}
@AfterClass
public static void tearDown() throws Exception {
driver.quit();
}
}
반응형
'지식메모 > 자동화' 카테고리의 다른 글
| 테스터로서 느낀 4가지 실수들 (0) | 2016.06.14 |
|---|---|
| appium 에서 특정영역을 좌우로 swipe 하기 (2) | 2016.05.23 |
| Appium 자동화 상하좌우 스크롤 하기 (0) | 2016.03.23 |
| Robotium API 기능 알아보기 (0) | 2016.02.18 |
| 로보티움 튜토리얼 실행해보기 (0) | 2015.09.04 |