알쓸전컴(알아두면 쓸모있는 전자 컴퓨터)

동적 웹 크롤러 (seleniumhq) 본문

Web

동적 웹 크롤러 (seleniumhq)

백곳 2019. 3. 23. 22:33


동적 웹 크롤러 


추후에 java script 로 불로온 데이터의 크롤링이 필요한데 


라이브라가 있었다.  해당 라이브러리는 크롬으로 접속한 결과를 가져 온다고 한다 .


상당히 강력하다고 생각한다 웹페이지에 보이는 모든 데이터를 끍어 올수있겠다. 


https://www.selenium.org/


한국 참조 사이트 : https://nesoy.github.io/articles/2017-03/Selenium


설명이 잘나와 있습니다. 


아래는 해당 사이트 자료 입니다, 


No Image

Selenium(셀레늄)이란?

  • Selenium은 웹 어플리케이션을 위한 테스팅 프레임워크로 자동화 테스트를 위한 여러가지 강력한 기능을 지원해준다.
  • C#, Groovy, Java, Perl, PHP, Python, Ruby and Scala등 다양한 언어를 지원한다.

Selenium 설치하기

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.3.1</version>
</dependency>
  • Gradle : Version 3.3.1
// https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java
compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '3.3.1'

WebDriver 다운받기

  • Test하고 싶은 브라우저(Browser)를 선택하여 다운로드 받기
  • WebDriver 자료 : http://docs.seleniumhq.org/download/
  • 저는 ChromeDriver를 사용하여 진행하였습니다.

No Image

SpringBoot에 Selenium(셀레늄)을 활용하여 Test하기

Test Code 작성하기

@RunWith(SpringRunner.class)
@SpringBootTest
public class HomePageTest {
    private WebDriver driver;
    @Before
    public void setUp(){
        System.setProperty("webdriver.chrome.driver", "src/test/driver/chromedriver"); // 다운받은 ChromeDriver 위치를 넣어줍니다.
        driver = new ChromeDriver(); // Driver 생성
    }
    @After
    public void tearDown(){
        driver.quit();  // Driver 종료
    }

    @Test
    public void test_title(){ //타이틀 확인하는 테스트 코드
        driver.get("Test URL입력"); // URL로 접속하기
        WebElement coolestWidgetEvah = driver.findElement(By.id("coolestWidgetEvah")); //id로 Element 가져오기
        WebElement cheese = driver.findElements(By.className("cheese")); //클래스이름으로 Element 가져오기
        WebElement iframe = driver.findElement(By.tagName("iframe")); //태그이름으로 Element 가져오기
        Assert.assertThat(driver.getTitle(),is("URL의 Title")); // Title 확인 작업
    }
}

Test 결과확인하기

  • 성공시 결과화면

No Image

  • 실패시 결과화면

No Image

Conclusion

다양한 Selenium(셀레늄)의 기능들을 활용하여 많은 Test를 작성하여 시간과 노력을 절약할 수 있다.

Reference


'Web ' 카테고리의 다른 글

Youtube Data API 사용 하기 (video 검색)  (10) 2019.03.26
방문자 행동 분석 heat map  (0) 2019.03.25
google oauth2 사용하기  (5) 2019.03.22
Google web-login  (0) 2019.03.21
tomcat startup 시 Lock ? Hang ? Slow 현상  (1) 2019.03.07
Comments