Study_Note

selenium : python 에서 browser 를 띄워 놓은 상태에서의 실행 본문

selenium (with python)

selenium : python 에서 browser 를 띄워 놓은 상태에서의 실행

12월7일생 2023. 4. 28. 17:48
728x90
반응형

셀레니움을 사용하여 브라우저를 띄워놓은 상태에서 자동화를 수행하려면 이미 띄워진 브라우저에 연결해야 합니다. 이를 위해서는 webdriver.Remote() 클래스를 사용하여 원격으로 브라우저를 제어할 수 있습니다.

이를 위해 다음과 같은 과정이 필요합니다.

  1. 띄워진 브라우저에서 원하는 페이지로 이동합니다.
  2. 띄워진 브라우저에서 사용되는 웹 드라이버 포트를 확인합니다.
  3. webdriver.Remote() 클래스를 사용하여 브라우저에 연결합니다.

아래는 각 과정에 대한 예시 코드입니다.

 

# 1. 띄워진 브라우저에서 원하는 페이지로 이동
# 이 예시에서는 이미 브라우저가 띄워져 있다는 가정하에 'https://www.google.com'으로 이동합니다.

# 2. 띄워진 브라우저에서 사용되는 웹 드라이버 포트 확인
# 띄워진 브라우저에서 사용되는 웹 드라이버 포트를 확인하려면
# 주소창에 'chrome://version'을 입력하고 엔터를 누르면 나오는 'Command Line' 항목에서 '--remote-debugging-port=xxxx' 값을 확인합니다.
# 이 예시에서는 포트 번호로 9222를 사용합니다.

from selenium.webdriver import Remote

url = 'http://localhost:9222' # 띄워진 브라우저의 URL
options = Remote.webdriver.ChromeOptions()
options.add_experimental_option('debuggerAddress', 'localhost:9222') # 띄워진 브라우저의 주소 및 포트 번호 입력
driver = Remote(command_executor=url, options=options)

# 3. 원격으로 브라우저 제어
# 이제 `driver` 변수를 사용하여 브라우저를 제어할 수 있습니다.
# 예를 들어, 구글 검색창에 '셀레니움'을 검색하려면 아래와 같이 작성합니다.
search_box = driver.find_element_by_name('q')
search_box.send_keys('셀레니움')
search_box.submit()

위 코드에서 options.add_experimental_option('debuggerAddress', 'localhost:9222') 부분에서 9222는 띄워진 브라우저에서 사용되는 웹 드라이버 포트 번호입니다.
이 포트 번호는 브라우저마다 다르므로 확인 후 사용해야 합니다.

 

 

 

 

 

 

'selenium (with python)' 카테고리의 다른 글

selenium : python Example (1)  (0) 2023.05.02
selenium : python , 창 전환  (0) 2023.04.28
selenium : python iframe 전환하기  (0) 2023.04.28
selenium : python 시간대기 명령어  (0) 2023.04.28
selenium python : page scroll  (0) 2023.04.28