WebDriverWait로 클래스 사양 활용
JavaScript를 통해 로드된 동적 콘텐츠가 있는 웹사이트가 포함된 웹 스크래핑 프로젝트에서 Selenium 라이브러리를 Python과 통합하면 효율성이 향상됩니다. 요소 식별 및 로딩을 제어할 수 있습니다. 이를 통해 스크래핑을 진행하기 전에 특정 요소가 렌더링될 때까지 기다릴 수 있습니다.
그러나 ID 대신 클래스별로 요소를 지정하는 경우 EC.presence_of_element_location((By.ID, "myDynamicElement"))를 사용하면 도전. 이 문제를 해결하려면 By.class를 여러 클래스 이름과 함께 사용할 수 없으므로 오류가 발생합니다.
해결 방법
이 제한을 극복하고 클래스별로 요소를 효과적으로 지정하려면 다음을 고려하세요. visible_of_element_location() 또는 element_to_be_clickable()과 같은 다른 WebDriverWait ExpectedConditions 메소드를 사용합니다. 또한 CSS_SELECTOR 또는 XPATH를 사용하면 정확한 식별을 위해 ID와 CLASS 속성을 결합할 수 있습니다.
CSS_SELECTOR:
element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located( (By.CSS_SELECTOR, ".ng-binding.ng-scope#tabla_evolucion"))
XPATH:
element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located( (By.XPATH, "//*[@class='ng-binding ng-scope' and @id='tabla_evolucion']"))
가장 적합한 솔루션은 고객의 특정 요구 사항에 따라 다르다는 점을 기억하십시오. 프로젝트와 웹사이트의 HTML 구조.
위 내용은 Selenium과 함께 WebDriverWait를 사용하여 동적 웹 페이지에서 클래스별로 요소를 찾으려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!