파이썬 셀레니움에서 webdriver.close()로 크롬 창을 닫은 후에 다시 크롬창을 생성시키는 방법질문

조회수 9867회

driver = webdriver.chrome( )를 실행하면

크롬드라이버실행파일(?) 창(시커먼 화면의 도스창 같은 윈도우창) 과 크롬 브라우저 창이

함께 화면에 떠잖아요..

이후 close()매서드로 크롬 브라우저 창만 닫았습니다.

크롬드라이버창은 여전히 화면에 있습니다.

이때 driver로 새로운 크롬 브라우저창을 띠우는 방법(매서드)는 없나요?

크롬브라우저창을 만들기 위해서는 반드시시 webdriver.chrome( )를 다시 실행시켜야만 되나요?

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • close 와 quit 차이가 close 는 탭만 닫는겁니다. 그 반면에 quit 는 드라이버를 종료(자원해제)합니다.

    close 만 상태는 driver 는 아직 유효한 상태이므로 새탭을 생성하면 됩니다.

    아래와 같이 창 하나를 여는 스크립트를 사용하면 됩니다.

    driver.execute_script("window.open();")
    
    • 설명해주신 대로 해보았더니 이런 에러가 나오네요. "selenium.common.exceptions.WebDriverException: Message: invalid session id" 크롬창을 닫았는데 새탭을 만들 수가 있나요? 탭이 여러개 열어있는 상태라면 그중 하나만 닫아도 여전히 크롬창은 화면에 있으므로 새로운 탭을 만들 수 있을 것 같지만, 크롬브라우저창이 아예 화면에서 사라졌는데도 설명해주신 방법대로 새탭을 새롭게 만들 수 있는건가요? 크롬창이 있는 상태에서 설명하신 대로 해보니 새탭이 생성되었지만, 크롬 창을 완전히 닫은 상태에서는 드라이버가 아직 존재해도 새탭은 만들어지지 않네요. 무엇이 잘못된 것일까요? 알 수 없는 사용자 2019.4.29 14:47
    • 한가지 selenium 은 단순하게 브라우져 자동화용도(!)임을 잊지 마시기 바랍니다. 브라우저가 할 수 없는 일을 할 수는 없습니다. 크롬 브라우져에서 탭을 다 닫으면 브라우져가 종료됨을 알 수 있습니다. 즉 탭을 모두 닫는행위는 브라우져 종료라고 판단하고 프로그래밍을 해야 될 듯 합니다. 정영훈 2019.4.29 18:31
    • 설명 감사합니다. ^^ 알 수 없는 사용자 2019.4.29 21:46

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)