프로젝트 생성
파이썬 파일 생성




--> 해당 파이썬 파일이 실행됨

요약)
from selenium import webdriver
driver = webdriver.Chrome("./chromedriver")
driver.get("https://nid.naver.com/nidlogin.login?mode=form&url=https%3A%2F%2Fwww.naver.com")
driver.find_element("id","id").send_keys("아이디")
driver.find_element("id","pw").send_keys("비밀번호")
driver.find_element("id","log.login").click()
from selenium import webdriver
driver = webdriver.Chrome("./chromedriver")
# webdriver.Chrome("./chromedriver") 만 해놓으면 웹이 띄워지자마자 바로 없어짐 -> 변수에 넣어야됨
# 아마 변수에 넣어야 실행된 해당 코드가 메모리상에 남아있는듯,
먼저 네이버 로그인 페이지의 주소를 가져옴
다음과 같이 웹을 띄우기 위한 객체에 get() 메소드를 사용하여 주소 세팅
from selenium import webdriver
driver = webdriver.Chrome("./chromedriver")
driver.get("https://nid.naver.com/nidlogin.login?mode=form&url=https%3A%2F%2Fwww.naver.com")
아이디 입력부분 찾아내기
네이버 로그인 페이지로 간다.
F12를 눌러 크롬 개발자 도구를 연다.
크롬 개발자 도구의 왼쪽 상단에 "검사할 페이지 요소 선택"을 클릭한다.
이런 버튼
아이디 입력부분 클릭
--> 이렇게 하면 브라우저의 html코드 상에서 아이디 입력부분에 대한 코드가 색출됨
이렇게 나온 코드를 주목
ex ) 네이버 로그인 페이지의 로그인 입력을 위한 input 태그
<input type="text" id="id" name="id" placeholder="아이디" title="아이디" class="input_text" maxlength="41" value="">
--> 우리는 이 input태그의 id속성을 사용하여 해당 태그를 찾아낼 예정임 ( 대표적인 방법 )

찾아낸 아이디 입력부분의 id속성을 통해 해당 부분을 찾아내고, 나아가 값을 입력
from selenium import webdriver
driver = webdriver.Chrome("./chromedriver")
driver.get("https://nid.naver.com/nidlogin.login?mode=form&url=https%3A%2F%2Fwww.naver.com")
driver.find_element("id","id").send_keys("아무거나1")
driver.find_element("id","pw").send_keys("아무거나2")
아이디 입력을 위한 input태그의 코드 -> id 속성의 값이 "id" 임

비밀번호 입력을 위한 input태그의 코드 -> id 속성의 값이 "pw" 임


find_element()는 특정 속성의 특정 값에 해당하는 태그를 받아오는 메소드이다. (webdriver 라이브러리의 메소드)
driver.find_element("속성","속성의 값")
# 즉, driver.find_element("aa","nn")라고 한다면
# 해당 페이지의 태그중에 aa라는 속성이 nn이라는 값을 가지는 것을 가져온다.
# 위에서 driver.find_element("id","id") 라고 하면 id 속성이 id인 태그를 가져온다는 뜻이다.
send_keys()는 가져온 태그에 값을 전달하는 메소드이다. (webdriver 라이브러리의 메소드)
driver.find_element("id","id").send_keys("아무거나1")
# id속성의 값이 "id"인 태그를 가져와서 "아무거나1"이라는 값을 전달한다. ( 즉, 입력한다. )
driver.find_element("id","log.login").click()
로그인 버튼의 id는 "log.login"이므로 해당 태그를 가져와서 click() 메소드를 통해 클릭 신호를 전달한다.

공식문서 : https://selenium-python.readthedocs.io/locating-elements.html#locating-elements
--> 식별문법들이 다 여기 있으니까 이거 참고할것
( class속성을 통해 태그를 식별하는 예시임 -> 이것도 공식문서에 있는거 참고한 것 )
위에서는 태그의 id속성으로 태그를 찾았지만 항상 태그가 id속성을 가지고 있는 것은 아니다.
이 경우 다른 속성을 통해 태그를 선별해야 하는데,
그 예시 중 하나로 class 속성을 통해 태그를 구분해볼 것이다.
아래를 보면 해당 뉴스 버튼은 list태그 안에 있으므로 list태그의 "news"라는 class속성명으로 식별할 수 있을 것 같다.

--> 이를 아래와 같이 하여 식별한다.
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome("./chromedriver")
driver.get("https://www.nate.com/")
driver.find_elements(By.CLASS_NAME,"news")[0].click()
driver.find_elements(By.CLASS_NAME,"news")[0].click()
--> class 속성을 통해 태그를 식별할 것인데,
위를 보면 "news"는 list태그의 class속성값이므로 list태그가 식별되어 list가 넘겨올 것이다.
이렇게 넘어온 list의 첫번째 데이터를 가져오는데 그것이 우리가 찾는 뉴스 버튼이다.

작업을 하다보면 위와 같이 한 태그의 class속성값이 여러개인 경우를 자주 볼 것이다.
이런 경우에는 하나씩 시도해보면 된다.
# 각각해보면 이 중에 하나는 해당 태그를 인식하고 가져오게 된다.
# 그 Class속성값을 찾아서 그걸로 작업을 진행하면된다.
driver.find_element(By.CLASS_NAME,o3j99)
driver.find_element(By.CLASS_NAME,LLD4me)
driver.find_element(By.CLASS_NAME,ye19zn)
driver.find_element(By.CLASS_NAME,LS8OJ)
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome("./chromedriver")
driver.get("https://www.nate.com/")
driver.find_elements(By.CLASS_NAME,"news")[0].click()
driver.close()
--> close() 메소드를 통해 브라우저를 종료시킬 수 있다.