알쓸전컴(알아두면 쓸모있는 전자 컴퓨터)
동적 웹 크롤러 (seleniumhq) 본문
동적 웹 크롤러
추후에 java script 로 불로온 데이터의 크롤링이 필요한데
라이브라가 있었다. 해당 라이브러리는 크롬으로 접속한 결과를 가져 온다고 한다 .
상당히 강력하다고 생각한다 웹페이지에 보이는 모든 데이터를 끍어 올수있겠다.
https://www.selenium.org/
한국 참조 사이트 : https://nesoy.github.io/articles/2017-03/Selenium
설명이 잘나와 있습니다.
아래는 해당 사이트 자료 입니다,
Selenium(셀레늄)이란?
- Selenium은 웹 어플리케이션을 위한 테스팅 프레임워크로 자동화 테스트를 위한 여러가지 강력한 기능을 지원해준다.
- C#, Groovy, Java, Perl, PHP, Python, Ruby and Scala등 다양한 언어를 지원한다.
Selenium 설치하기
Maven, Gradle에 추가하기 : http://www.mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java
Maven : Version 3.3.1
<!-- 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를 사용하여 진행하였습니다.
SpringBoot에 Selenium(셀레늄)을 활용하여 Test하기
Test Code 작성하기
- Junit에 대해 알면 더욱 좋습니다. 관련 글 : https://nesoy.github.io/articles/2017-02/JUnit
- Selenium Documentation : http://www.seleniumhq.org/docs/index.jsp
- 다운받은 ChromeDriver 위치를 넣어줍니다.
- 간단한 Title 확인 Test 코드
@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 결과확인하기
- 성공시 결과화면
- 실패시 결과화면
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