1.브라우저 생성하기
-옵션을 넣어 바로 닫히는 것을 방지하자
-send_keys는 별도의 모듈 임포트 필요없음. 다만 특수키는 Keys임포트 필요.
-selenium.webdriver.common.keys의 Keys는 특수키를 누를 수 있게 해준다.
-이벤트 사이사이마다 기다려야 하기 때문에 time모듈은 반강제적 사용
1-1드라이브로드(브라우저 객체는 정확한 용어사용이 아님)
옵션객체 = webdriver.ChromeOptions()
옵션객체.add_experimental_option(옵션내용)
브라우저 객체 = webdriver.Chrome('드라이버경로', options = 옵션객체)
2.브라우저에서 url열기
-웹페이지 읽어오기
브라우저객체.get(url)
-로딩대기하기(implicitly_wait()는 최대 대기시간을 지정하고 로딩이 끝날 때 까지 기다린다)
브라우저객체.implicitly_wait(10)
에러를 방지하기 위해 필히 사용.
3.요소 '선택'하기
브라우저객체.find_element_by_css_selector()
선택객체 = 브라우저객체.find_element_by_css_selector()
브라우저객체.find_element_by_css_selector().click()
by 뒷부분은 입맛에 맞게 변경가능하고, .click(), .send_keys()등으로 바로 클릭,입력가능. 선택한 요소를 따로 객체에 담을 수도 있다.
4.요소 조작하기.(=클릭하고 키보드 입력하기)(선택객체를 만들어 .찍고 클릭/입력하거나, 선택한고 바로 .찍어 클릭/입력할 수도 있음)
-클릭
.click()
-키보드 입력
.send_keys('입력할 내용')
-엔터키 입력(특수키 입력)
.send_keys(Keys.ENTER)
.send_keys(Keys.RETURN) -> Mac에서는 ENTER안먹히는 듯
-중간중간에 time.sleep으로 기다리면 오류 방지할 수 있음
ex)예시
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
#브라우저 생성
options = webdriver.ChromeOptions()
options.add_experimental_option("detach", True) #브라우저가 바로 닫히는 것을 방지하는 옵션
options.add_experimental_option("excludeSwitches", ['enable-logging']) #불필요한 메세지를 제거하는 옵션
browser = webdriver.Chrome('/usr/local/bin/chromedriver', options=options)
#웹사이트 열기
browser.get('https://www.naver.com')
browser.implicitly_wait(10) #로딩이 끝날 때 까지 10초는 기다림
#쇼핑메뉴 클릭하기
browser.find_element_by_css_selector('a.nav.shop').click()
#클레스 선택자가 여러개인 경우(class = 'abc def'처럼 띄어쓰기 되어 있으면 abc클래스와 def클래스가 전부 적용된다는 뜻)
#abc.def로 선택하면 2개의 클래스를 모두 가진 태그 선택. 클래스 속성값에는 공백이 허용되지 않음.
#즉 HTML 요소에서 클래스 속성값은 공백으로 구분하여 여러개 지정할 수 있는 것.
#두 개 이상의 선택자가 적용된 태그라면 .abc.def로 찾아주어야함.
#click()은 클릭을 선택하는 명령어.
time.sleep(1) #잠깐 기다림
search = browser.find_element_by_css_selector('input.co_srh_input._input')
#선택자로 뒤에.N=a:SNB.search 추가하면 검색창 클릭이 안됨. 이유는 모름
search.click() #검색창 클릭
#검색어 입력
search.send_keys('아이폰 13')
search.send_keys(Keys.RETURN) #맥이라 그런가 ENTER말고 RETURN으로해야 먹힌다.'PYTHON > 파이썬_라이브러리&모듈' 카테고리의 다른 글
| 파이썬 webbrowser 라이브러리/모듈 (0) | 2022.06.11 |
|---|---|
| 파이썬 random모듈 (0) | 2022.06.11 |
| 파이썬 Selenium라이브러리1(+MacOS에서 설치팁, +바로꺼짐오류팁) (0) | 2022.05.12 |
| 파이썬 BeautifulSoup라이브러리 (0) | 2022.05.12 |
| 파이썬 time/ datetime모듈 (0) | 2022.05.11 |