728x90
지난 포스팅에 이어서..
타임아웃, 입력, 클릭, 창 사이즈, 스크린샷, 슬립, 프롬프트 출력, 판정을 추가해본다 (명시적 대기, 스크롤 스크린샷, 얼럿창 제어, 밤부 연결 등은 추후에..)
네이버에서 서태지 검색 후 출생년도가 나오는지 확인 후 화면캡쳐!
XPath는 다음과 같이 얻어오면 된다
- 크롬 > F12 > 돋보기 > 검색어 입력란 클릭 > 소스 우클릭 > XPath 복사
- 이클립스에 붙여넣기 후 큰 따옴표를 작은 따옴표로 바꾼다
import org.apache.commons.io.FileUtils;
import org.junit.*;
import static org.junit.Assert.*;
import java.io.File;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.junit.runners.MethodSorters;
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class SearchTest {
private static WebDriver driver;
private static StringBuffer verificationErrors = new StringBuffer();
private static String CHROMEDRIVER_FILE_PATH;
private static String SCREENSHOT_FOLDER_PATH;
@BeforeClass
public static void setUp() throws Exception {
//크롬 드라이버 및 스크린샷 경로
CHROMEDRIVER_FILE_PATH = "D:/Utility/eclipse/selenium/chromedriver.exe";
SCREENSHOT_FOLDER_PATH = "D:/AHA/";
System.setProperty("webdriver.chrome.driver", CHROMEDRIVER_FILE_PATH);
driver = new ChromeDriver();
//브라우저 로딩 타임아웃 1분
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
//웹브라우저 창 사이즈
driver.manage().window().setSize(new Dimension(1024, 768));
}
@Test
public void T01() throws Exception {
driver.get("http://naver.com");
//프롬프트 출력
System.out.println("T01 end");
}
@Test
public void T02() throws Exception {
//검색어 입력
driver.findElement(By.xpath("//*[@id='query']")).sendKeys("서태지");
//2초간 슬립
sleep(2);
//검색 버튼 클릭
driver.findElement(By.xpath("//*[@id='search_btn']")).click();
sleep(2);
//판정
assertTrue(driver.getPageSource().contains("1972년"));
//스크린샷
captureScreen("screenshot");
System.out.println("T02 end");
}
@AfterClass
public static void tearDown() throws Exception {
driver.close();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
System.out.println("Tatal end");
}
//슬립 함수
private void sleep(int sec) {
try {
Thread.sleep(sec * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
//스크린캡쳐 함수
public void captureScreen(String filename) {
String path;
try {
File source = ((TakesScreenshot) driver)
.getScreenshotAs(OutputType.FILE);
path = SCREENSHOT_FOLDER_PATH + filename + ".png";
FileUtils.copyFile(source, new File(path));
} catch (IOException e) {
e.printStackTrace();
}
}
}
728x90
'기타' 카테고리의 다른 글
| [autoit] 치트 시트 (0) | 2015.08.13 |
|---|---|
| Selenium Grid 셋팅하기 (1) | 2015.08.10 |
| [autoit] 부팅 후 네이트온 창 닫기 (0) | 2015.08.03 |
| 파일명 길이 제한 (0) | 2015.07.29 |
| [Mac] iOS 시뮬레이터에 app 설치하기 (0) | 2015.06.29 |