셀레니움 크롤링을 진행하다보면, 정말 다양한 오류를 만난다.
셀레니움 크롬으로 진행하고 있었고, 옵션에서 오류가 발생하는 경우였다.
try:
path_dir = os.getcwd()
options = webdriver.ChromeOptions()
options.add_argument("user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36")
options.add_argument('--headless')
options.add_argument("--no-sandbox")
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--start-fullscreen')
driver = webdriver.Chrome(r'/usr/bin/chromedriver',chrome_options=options)
driver.set_page_load_timeout(10)
driver.get('[크롤링 사이트명]')
driver.find_element_by_xpath('//*[@id="proxylisttable_length"]/label/select').click()
driver.find_element_by_xpath('//*[@id="proxylisttable_length"]/label/select/option[3]').click()
except Exception as ex:
print(traceback.format_exc)
print(ex)
위의 코드로 크롤링을 실행했고, 오류가 났다.
<function format_exc at 0x7fa2cea058c8>
Message: element not interactable
(Session info: headless chrome=80.0.3987.106)
우선 해결책을 먼저 적자면,
options.add_argument('--window-size=1920x1080')
크롬 옵션에 window-size 옵션을 추가해주면 된다.
오류가 발생한 이유를 찾아보니,
option에 headless 조건을 주었기 때문에, 창을 띄울수 없는데,
options.add_argument('--headless')
driver.find_element_by_xpath('//*[@id="proxylisttable_length"]/label/select').click()
driver.find_element_by_xpath('//*[@id="proxylisttable_length"]/label/select/option[3]').click()
driver로, click() 이벤트를 주었기 때문이다.
따라서, window-size 옵션 한줄이면 해결 가능했다.
'Developer > Troubleshooting' 카테고리의 다른 글
ModuleNotFoundError: No module named 'DBUtils' (0) | 2021.02.22 |
---|---|
Message: unknown error: cannot create temp dir for unpacking extensions (0) | 2021.01.20 |
linux vi error (0) | 2021.01.20 |
스프링 부트 An internal error occurred during: "Building UI model". (1) | 2020.12.30 |
failed to write prefs file - chromedriver, selenium (0) | 2020.07.26 |