본문 바로가기
🍃 Language/Python

[Python] 셀레니움(Selenium) NoSuchElementException 에러

by 카프리썬_ 2021. 4. 15.
728x90
728x90

셀레니움으로 크롤링하는데 접근하려는 요소가 존재하지 않을때 발생

대상 페이지가 서버와 통신이 계속적으로 진행되는 동적페이지거나,

크롤링을 원하는 요소가 html내에 존재하지도 않는데 접근하려고 할때 

 

workingwithpython.com/selenium-waits/

 

셀레니움(Selenium)에서 대기(Waits)하기 - 크롤링을 위한 파이썬(Python)

파이썬으로 셀레니움 크롤링을 할 때 NoSuchElementException에러가 발생할 수 있습니다. 이러한 경우 셀레니움에서 접근하고자 하는 요소가 생성될 때까지 대기(Waits)하여 에러를 방지할 수 있습니다.

workingwithpython.com

 

현재 리다이렉션 페이지에서 허가버튼을 누르려고 xpath를 가져오는데 오류발생

# authentication code 정보를 가져옵니다.
def get_authentication_code(driver, client_id, redirect_url):
req_url = 'https://www.tistory.com/oauth/authorize?client_id=%s&redirect_uri=%s&response_type=code&state=langoo' % (client_id, redirect_url)
driver.get(req_url) #접근허가 페이지
print(req_url)
driver.find_element_by_xpath('//*[@id="contents"]/div[4]/button[1]').click() #허가하기 선택
print("허가 선택완료!")

redirect_url = driver.current_url
temp = re.split('code=', redirect_url) #리다이렉션 페이지에서 code= 뒷부분 가져옴
code = re.split('&state=', temp[1])[0]
return code

728x90
반응형