Python andselenium

1,748 views

Published on

1 Comment
6 Likes
Statistics
Notes
No Downloads
Views
Total views
1,748
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
13
Comments
1
Likes
6
Embeds 0
No embeds

No notes for slide

Python andselenium

  1. 1. Python And Selenium charsyam@naver.com
  2. 2. Selenium 셀레늄. 브라우저 자동화 도구. 브라우저에 대한 UI 테스트시 사용된다. http://www.seleniumhq. org/download/
  3. 3. Selenium 설치 테스트 환경: Linux Ubuntu, Firefox java -jar selenium-server-standalone-2.35.0.jar pip install -U selenium
  4. 4. 샘플 #1 from selenium import webdriver from selenium.common.exceptions import NoSuchElementException from selenium.webdriver.common.keys import Keys import time browser = webdriver.Firefox() # Get local session of firefox browser.get("http://www.yahoo.com") # Load page assert "Yahoo!" in browser.title elem = browser.find_element_by_name("p") # Find the query box elem.send_keys("seleniumhq" + Keys.RETURN) time.sleep(0.2) # Let the page load, will be added to the API try: browser.find_element_by_xpath("//a[contains(@href,'http://seleniumhq.org')]").click() except NoSuchElementException: assert 0, "can't find seleniumhq" browser.close()
  5. 5. 시연 #1
  6. 6. 나쁜 짓에도 할 수 있을듯... 추석 표 예매? 또는 영화 표 예매?
  7. 7. 기차표를 예매한다면 어떤 것들이 필요할까? 1. 브라우저 실행/특정 페이지 이동 2. 폼 전달/특정 태그 선택 후 클릭 3. 경고창 4. select/option 태그 값 변경 5. 종료
  8. 8. 브라우저 실행/특정 페이지 이동 1. driver = webdriver.Firefox() 2. driver.get("http://www.korail.com/2012/index.jsp")
  9. 9. 특정 버튼 찾아서 클릭 driver.find_element_by_link_text("로그인").click()
  10. 10. Form 채우기 driver.find_element_by_name('txtMember').send_keys (id) driver.find_element_by_name('txtPwd').send_keys(pw)
  11. 11. 경고창 alert = driver.switch_to_alert() time.sleep(2) alert.accept() 적절한 딜레이가 필요
  12. 12. select/option tag select = driver.find_element_by_name("txtPsgFlg_1") options = select.find_elements_by_tag_name("option") for option in options: if num == option.get_attribute("value"): option.click()
  13. 13. 브라우저 종료 driver.close()
  14. 14. 시연2
  15. 15. Tip 1. Selenium IDE를 사용하면 정보를 찾기 쉽다. 2. 적절한 딜레이를 줘야 정상적으로 동작한다. 3. 예외 처리를 잘 해둬야 한다.
  16. 16. 결론 1. 이번 기차표 예매는 큰 도움은 안됬음. - 서버가 뻗어서 일단 예상대로 동작 안함. 2. 페이지 소스가 자주 바뀌면 이에 따라 계속 수 정이 필요함. 3. 그럼에도 불구하고, 배우고 쓸만한 가치가 있 음. 웹 UI 테스트 자동화등 - 실제 서비스 테스트 사례도 많음.

×