selenium2

김지윤·2023년 4월 13일
0

웹 크롤링

목록 보기
4/4

from selenium import webdriver
from selenium.webdriver.common.by import By #By.XPATH쓰기 위해 import 해줘야함.
from selenium.webdriver.common.keys import Keys #Keys.ENTER 쓰기 위해 import 해줘야함.
from selenium.webdriver.support.wait import WebDriverWait #로딩 시간이 일정시간 넘으면 에러뜨도록 하기.
driver=webdriver.Chrome()

⌨️ 새로운 탭 뜨우기

driver.switch_to.new_window('tab')

⌨️ 새로운 창 띄우기

driver.switch_to.new_window('window')

driver.switch_to.new_window('tab')
driver.switch_to.new_window('window')

.
.
.
.

🛻 naver, google, daum에서 "노트북" 검색하기

⌨️ 탭 전환 : driver.switch_to.frame( )

.
.
① Chrome 브라우저에서 naver, google, daum 탭 띄우기
» driver.switch_to.new_windows

driver = webdriver.Chrome( )
driver.get('http://www.naver.com') #Naver tab

driver.switch_to.new_window('tab')
driver.get('http://www.google.com') #Google tab

driver.switch_to.new_windows('tab')
driver.get('http://www.daum.net') #daum tab

② 현재 탭 확인
» driver.title
» driver.current_window_handle

print(driver.window_handles)
print(driver.current_window_handle)
print(driver.title)

③ Naver 탭에서 '노트북' 검색
» driver.switch_to.window

driver.switch_to.window(driver.window_handles[0])
print(driver.title)    # Naver : 현재 탭의 이름

r = driver.find_elements(By.XPATH,'//div[@class="green_window"]/input')
print(len(r))    # 1
r[0].send_keys('노트북'+Keys.ENTER)

④ Daum 탭에서 '노트북' 검색
» driver.switch_to.window

driver.switch_to.window(driver.window_handles[1])
print(driver.title)   # Daum : 현재 탭의 이름

r = driver.find_elements(By.XPATH,'//div[@class="inner_search"]/input')
print(len(r))    # 1
r[0].send_keys('노트북'+Keys.ENTER)

⑤ Google 탭에서 '노트북' 검색
» driver.switch_to.window

driver.switch_to.window(driver.window_handles[2])
print(driver.title)   # Google : 현재 탭의 이름

r = driver.find_elements(By.XPATH,'//input[@class="gLFyf"]')
print(len(r))    # 1
r[0].send_keys('노트북'+Keys.ENTER)

⌨️ for 구문으로 묶기

for i in range(4) :
    driver.switch_to.window(driver.window_handles[i])
    if driver.title == "Daum" :
        r = driver.find_elements(By.XPATH,'//div[@class="inner_search"]/input')
        r[0].send_keys('노트북'+Keys.ENTER)
    
    elif driver.title == "Naver" :
        r = driver.find_elements(By.XPATH,'//div[@class="green_window"]/input')
        r[0].send_keys('노트북'+Keys.ENTER)
    
    elif driver.title == "Google" :
        r = driver.find_elements(By.XPATH,'//input[@class="gLFyf"]')
        r[0].send_keys('노트북'+Keys.ENTER)
profile
데이터 분석 / 데이터 사이언티스트 / AI 딥러닝

0개의 댓글

관련 채용 정보