seleniumbase는 기존 Selenium WebDriver를 좀 더 쉽게 쓸 수 있게 래핑해놓은 프레임워크.
driver 직접 생성 없이 with SB() as sb:로 바로 크롬 실행 가능.
브라우저 설정 (uc=True, locale="ko", test=True) 등도 간결하게 처리 가능.
셀레니움보다 직관적인 함수명이 많아서 복잡한 코드 없이 테스트 흐름을 구성할 수 있음.
SB()는 SeleniumBase의 실행 환경을 열고 브라우저를 제어할 수 있게 해줌.
여기서 uc=True는 Undetected Chrome 설정을 켜는 것. 일반적인 크롤링 탐지를 우회하는 데 사용.
locale="ko"는 페이지 언어 설정을 한국어로 맞춰주는 역할.
test=True를 쓰면 테스트용 로그와 스크린샷 저장 등의 기능이 활성화됨.
특정 URL로 접속하는 메서드.
driver.get() 대신 사용됨.
자동화 탐지를 막기 위해 나오는 GUI 기반 캡챠를 우회하는 SeleniumBase 내장 기능.
Undetected Chrome을 사용하는 경우에도 여전히 캡챠 우회가 필요할 수 있기 때문에 자주 사용됨.
해당 요소가 로딩될 때까지 기다림.
기본 Selenium에서는 WebDriverWait().until()을 복잡하게 써야 하는데, 여기선 한 줄로 간단하게 사용 가능.
페이지 전환, Ajax 호출 등이 있는 경우 반드시 써야 안정적인 크롤링 가능.
.type(selector, text)는 텍스트 입력.
.send_keys(selector, Keys.ENTER)는 입력 후 Enter 키를 누르도록 구현.
여기선 상품명을 입력하고 검색을 실행하는 역할을 함.
버튼, 탭 등을 클릭할 때 사용.
.click(selector)는 해당 요소가 클릭 가능한 상태가 되면 자동으로 클릭해줌.
여기선 "가격비교" 탭, 그리고 첫 번째 상품 클릭에 사용됨.
검색 결과나 반복되는 리스트 정보를 가져올 때 사용.
CSS selector 기반으로 특정 열(td) 안의 텍스트를 추출할 수 있음.
여기선 각 판매처 행을 순회하면서 판매처, 가격, 배송비를 각각 추출.
