본문 바로가기
코딩 공부/Python

[Selenium/Docker] AttributeError: 'NoneType' object has no attribute 'to_capabilities'

by 현장 2023. 7. 3.

강의로 selenium 공부하던 중  아래 코드를 실행했더니 다음과 같은 오류가 발생했다.

from selenium import webdriver 
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 
browser = webdriver.Remote("http://127.0.0.1:4444/wd/hub", 
DesiredCapabilities.CHROME) 
browser.get("http://naver.com") 
print(browser.title) 
browser.close()
Traceback (most recent call last):
  File "d:\Python_FastCampus\dynamic_crawling\test.py", line 6, in <module>
    browser = webdriver.Remote(URL, DesiredCapabilities.CHROME)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\mrk06\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 186, in __init__
    capabilities = options.to_capabilities()
                   ^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'to_capabilities'

 

 

무슨 이유에서 생기는지 확인을 해보니 'NoneType' 객체에 'to_capabilities' 속성이 없어서 발생하는 오류로  webdriver.Remote의 반환 값이 None이기 때문에 발생하는것입니다.

 

처음에는 url이 문제가 생긴줄 알았으나 selenium의 버전이 올라가면서 해당 부분이 바뀌게 된 것이었습니다.

검색을 통해서 찾아보니 글들이 다 영어고 이것 저것 시도를 해보다가 다음과 같은 코드로 해결을 했습니다.

 

from selenium import webdriver

browser = webdriver.Remote(
    command_executor='http://127.0.0.1:4444/wd/hub',
    options=webdriver.ChromeOptions()
)
browser.get("http://naver.com")
print(browser.title)
browser.close()

'코딩 공부 > Python' 카테고리의 다른 글

[Web/Crawling] Selenium  (0) 2023.07.10
[Pyside6] PyQt  (0) 2023.07.10
크롤링  (0) 2023.06.21
Django  (1) 2023.05.11
N-Queen 알고리즘  (0) 2022.05.19