라벨이 selenium인 게시물 표시

[python] selenium close와 quit 차이점

이미지
close와 quit 차이점 selenium webdriver를 닫는 기능으로는 close()와 quit()이 존재합니다. close() close()는 현재 selenium webdriver가 활성화되어 있는 화면만을 종료 합니다. 2개 이상의 webdriver 탭이 열려있다면 현재 활성화되어 있는 webdriver만 종료되고 나머지 webdriver는 종료되지 않습니다. 현재 열려있는 webdriver close() -> 활성화되어 있던 naver만 종료가 되었음. close() 이후 탭 전환을하고 싶으신 분은 아래의 링크를 참고하세요. window, mac에서 새 탭 열기 및 전환 https://daewoonginfo.blogspot.com/2019/05/python-selenium.html quit() quit()는 dispose() 함수를 불러와 열려있는 모든 webdriver를 종료하고 세션을 안전하게 종료 합니다. 프로그램을 종료할 때 quit()을 사용하지 않는다면 webdriver 세션이 완벽하게 종료되지 않아 메모리 누수가 발생할 수 있습니다. 하나의 webdriver가 열려있다면 close()와 quit() 어느 것을 사용해도 동일한 작업을 수행 합니다. 하지만 2개 이상의 webdriver가 열려있다면 close()와 quit() 다르게 작동  하는것을 유의해야합니다. 참고문헌 [1] https://www.zyxware.com/articles/5552/what-is-close-and-quit-commands-in-selenium-webdriver

[python] window,mac selenium 새 탭 열기 및 탭 전환

이미지
selenium 새 탭 열기 실제 사람이 인터넷에서 새로운 탭을 열기 위해서는 Ctrl + Mouse Click으로 새탭을 엽니다. from selenium import webdriver from selenium.webdriver.common.keys import Keys browser = webdriver.Chrome() browser.get( "http://www.google.com" ) # 본인이 클릭하고 싶은 것 클릭 target = browser.find_element_by_css_selector( "div.gb_e a" ) # window  새로운 탭 열기 target.send_keys(Keys.CONTROL + " \n " ) #  mac 새로운 탭 열기 # target.send_keys(Keys.COMMAND +"\n") target에 send_keys를 이용 해 a tag에 Ctrl + Click을 보내어 새로운 탭을 열게됩니다. mac의 경우에는 Ctrl + Click이 아닌 Command + Click을 보내야 합니다. send_keys는 현재 browser 초점이 맞춰진 요소에 대해 키값을 보냅니다. send_keys 매개변수로 Keys class에 선언되어 있는 상수들을 넣으시면 됩니다. target.send_keys(Keys.CONTROL +  " \n " ) 를 살펴보면 Keys.CONTROL은 selenium 상에서 Ctrl 키이며 \n은 엔터를 의미 합니다. 엔터(\n)는 클릭과 동일하기 때문에 Ctrl + Click을 하라는 의미 가 됩니다. target.send_keys(Keys.COMMAND +  " \n " ) 를 살펴보면 위와 동일하게 Command + Click을 하라는 의미 입니다. goog

[python] selenium.common.exceptions.SessionNotCreatedException: Message: session not created: Chrome version must be between 70 and 73

이미지
SessionNotCreatedException selenium.common.exceptions.SessionNotCreatedException: Message: session not created: Chrome version must be between 70 and 73의 의미는 버전 호환성 때문에 에러가 발생한다는 뜻 입니다. 문제 "크롬과 크롬드라이버의 버전 호환성이 맞지 않다" 현재 저의 크롬 버전은 74.0.3729.157 크롬 드라이버는 73.0.3683.68 입니다. 크롬 드라이버 73은 크롬 73 버전만 지원하는데 크롬 74에 크롬 드라이버 73을 사용하고 있어 호환성 에러가 발생했습니다. 해결방안 크롬 버전에 맞는 크롬 드라이버를 설치하면 됩니다. 저의 크롬 버전은 74.0.3729.157 이니 크롬 74 버전을 지원하는 ChromeDriver 74.0.3729.6 을 다운받았습니다. 크롬 버전 확인방법 크롬 오른쪽 상단 아이콘 - 도움말 - Chrome 정보을 누르시면 크롬 버전을 확인 할 수 있습니다. 현재 저의 크롬버전은 74.0.3729.157 입니다. 크롬 드라이버 다운로드 https://sites.google.com/a/chromium.org/chromedriver/downloads 웹사이트에 들어가시면 드라이버 마다 지원하는 크롬 버전이 명시되어 있습니다. 자신의 크롬 버전에 맞는 드라이버를 다운로드 받아 사용하면 됩니다. 크롬 드라이버 경로 설정 관련링크 http://chromedriver.chromium.org/getting-started WebDriver가 다운로드한 ChromeDriver 실행 파일을 찾을 수 있도록 경로를 설정해야 합니다. 방법 1. webdriver.Chrome( "your_chromedriver_path" ) # 예시