이번편에서는 Selenium에서 내가 원하는 Browser객체를 찾고, 값을 조작하는 기본원리를 설명한다.
전편에 이어서...
전편의 browser를 열기 이후부터 시작!
이번편에서는 driver객체에 있는 다양한 function을 소개한다.
특정 사이트로 이동하기(driver.get(site
))
구글 페이지 열기, driver.get이후에 접속하고자 하는 site의 주소를 입력해주면 된다.
driver.get("https://www.google.com")
개발자모드
를 통해서 확인하고, 조작을 원하는 구성요소를 selenium이 이해할 수 있는 문법으로 조작한다.F12
키 또는 화면에서 조작을 원하는 객체에 마우스 우클릭 → 검사 클릭
을 할 경우 현재 로딩된 화면의 Html구성요소를 확인 할 수 있다.Element
라고 칭함(테스트자동화에서는 object나 element로 조작을 원하는 대상을 칭함 앞으로는 element로 칭하겠음)<input>
tag 이고, name="q"
, title="검색"
, class="gLFyf gsfi"
, type="text"
등등 속성값을 가지고 있음gLFyf gsfi
은 그냥 느낌상 서버 빌드 할때마다 값이 변할 것 같아서 좋은 요소로 볼 수 없다.text
로 text속성을 가지 객체가 화면내에 다수 존재할 것 같아서 이 값도 좋은 요소라고 볼 수 없다.검색
이라는 값으로 검색이라는 느낌상 title요소 중 검색
을 가진 객체는 화면내에 몇개 안될것이라고 판단됨, 그래서 필자는 이 요소를 선택한다.검색
이라는 element가 몇개 있는지 확인해야함, 이를 확인하는 방법은 Chrome의 개발자 모드를 통해서 확인 가능함.검색
이다"라는 문장을 selenium이 알수 있는 문법으로 표현할 수 있는 방법 중 대표적인 방법인 Xpath를 소개함. 문법에 대한 자세한 설명은 링크를 내용을 확인해주길 바라며 selenium에서 활용하는 테크닉을 소개한다.//
로 표시할 수 있고 현재 지점이하의 모든 자식들을 검색하겠다.//input
/
로 표시할 수 있고 현재 지점바로 아래 자기 작식을 검색하겠다.//input/span
/..
로 표시 할 수 있고 현재 지점의 부모를 검색하겠다.//input/..
[@속성="검색값"]
로 표시할 수 있고 지정한 테그의 속성값이 내가 원하는 값인지를 검색함//input[@title="검색"]
//*[@title="검색"]
//*[@title="검색" and @name="q"]
Console
텝을 클릭하면 javascript를 실행해 볼 수 있는 창이 나오게 됨.$x('찾고자하는 xpath입력')
다음과 같이 입력해 보면 Xpath문법을 통해서 찾아지는 element를 확인 할 수 있음.//input
//input[@title="검색"]
"selenium chrome driver download"
) 입력 하기search_input = driver.find_element_by_xpath('//input[@title="검색"]')
search_input.send_keys("selenium chrome driver download ")
from selenium.webdriver.common.keys import Keys
이미 찾아진 검색창 element에 Enter키 입력
search_input.send_keys(Keys.ENTER)
※ 소스는 여기서 : https://github.com/jjunghyup/SeleniumExampleProject