반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

카테고리


반응형

오늘은 Selenium WebDriver를 이용한 예제를 하나 공부했습니다.


클래스를 실행 시키면 Firefox 브라우저를 켜서 gmail로 가고 아이디 입력과 비밀번호 입력 그리고 Log in 버튼을 누르는 것까지 실행하는 예제입니다.


import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

public class WebDriver_Ex {
    public static void main(String[] args) {
        WebDriver driver = new FirefoxDriver();
        driver.get("http://gmail.com");
//        WebElement username = driver.findElement(By.id("Email"));
        WebElement username = driver.findElement(By.xpath("//*[@id=\"Email\"]"));
        username.sendKeys("아이디");
        WebElement password  = driver.findElement(By.id("Passwd"));
        password.sendKeys("비밀번호");
       
        WebElement signInBtn = driver.findElement(By.id("signIn"));
        signInBtn.click();
    }
}



이 소스를 실행시키면 Firefox를 실행시키고 사용자 이름과 비밀번호를 주어진 값으로 채워 넣습니다.

그리고 로그인 버튼을 클릭하는 이벤트를 발생시켜서 gmail로 로그인을 합니다.


소스를 보면요.

먼저 WebDriver 인터페이스에 있는 FirefoxDriver()의 객체를 만듭니다.

다음에 get() 메소드를 사용해서 gmail 로 접속을 합니다.

여기까지 하면 파이어폭스 브라우저에 gmail.com 페이지가 뜹니다.


그 다음에는 gmail 페이지의 태그를 알아야 하는데요. 사용자 이름을 넣는 텍스트필드에 값을 넣어야 하는데 이때 사용할 수 있는 방법이 id로 하는 방법과 xpath 로 하는 방법이 있습니다.


이 페이지의 소스를 보려면 firebug 플러그인을 firefox 브라우저에 인스톨해서 사용하시면 편합니다.

xpath를 아시려면 firepath 를 인스톨 하시면 되구요.


자세한 방법은 검색하셔서 관련 글을 보시면 됩니다. 관련된 글이 많이 있을 겁니다.


이 Firebug를 통해서 보면 gmail 의 로그인 페이지에서 아이디를 넣는 텍스트 필드의 id 가 Email 인 것을 알 수 있습니다.

여기까지 알면 WebElement 를 사용해서 해당 텍스트 필드의 객체를 생성합니다.


WebElement username = driver.findElement(By.id("Email"));


혹은 Firepath 를 사용해서 xpath 를 알 수도 있습니다.

xpath 에는 절대경로(Absolute xpath,complete xpath)와 상대경로(partial xpath) 가 있는데요.

여기서는 상대경로를 사용합니다.

WebElement username = driver.findElement(By.xpath("//*[@id=\"Email\"]"));


이렇게 하면 아이디를 넣는 텍스트 필드의 WebElement 객체를 만들었습니다.


이러면 이 엘리먼트를 마음대로 다룰 수가 있게 됩니다.


아이디를 넣어야 하니까 이럴때눈 sendKeys() 메소드를 사용하시면 됩니다.

비밀번호두 마찬가지로 진행합니다.

그리고 로그인 버튼도 WebElement 객체를 만들어서 click() 메소드를 사용해서 클릭하도록 합니다.


이제 이 소스를 실행하면 gmail로 가서 아이디와 비밀번호를 입력하고 로그인 버튼을 눌러서 접속하는것까지 실행합니다.


Selenium 은 테스팅 툴입니다.


여기서는 그 다음페이지의 title을 받아서 원래 설계된 페이지로 제대로 왔는지 안 왔는지 여부를 테스트 할 수 있겠네요.


일단 오늘은 Selenium 을 사용해서 웹페이지에 있는 WebElement들을 control 하는 방법을 정리했습니다.


반응형