> 백엔드 개발 > 파이썬 튜토리얼 > Selenium과 Python을 사용하여 여러 클래스 이름이 있는 웹 요소를 효율적으로 찾으려면 어떻게 해야 합니까?

Selenium과 Python을 사용하여 여러 클래스 이름이 있는 웹 요소를 효율적으로 찾으려면 어떻게 해야 합니까?

Linda Hamilton
풀어 주다: 2024-12-11 18:57:13
원래의
309명이 탐색했습니다.

How Can I Efficiently Locate Web Elements with Multiple Class Names Using Selenium and Python?

Selenium과 Python을 사용하여 클래스 이름으로 요소 찾기

웹 스크래핑 시나리오에서는 웹 페이지에서 요소를 찾아야 하는 경우가 많습니다. 동적으로. 동적 콘텐츠를 처리할 때 BeautifulSoup의 한계를 극복하기 위해 Selenium을 통합하여 스크래핑하기 전에 JavaScript를 통해 요소가 로드될 때까지 기다릴 수 있습니다.

다음 Python 코드를 고려하세요.

element = WebDriverWait(driver, 100).until(EC.presence_of_element_located((By.class, "ng-binding ng-scope")))
로그인 후 복사

여기서 코드 줄의 목적은 요소 식별을 위한 클래스 이름을 지정하는 것입니다. 그러나 By.class 인수 내에 클래스 이름이 여러 개 있으면 오류가 발생할 수 있습니다. Selenium은 By.class를 통한 여러 클래스 이름 전달을 지원하지 않습니다.

솔루션

이 문제를 해결하려면 다음 제안 사항을 고려하세요.

  • presence_of_element_location() 대신 visible_of_element_location() 또는 element_to_be_clickable()을 사용하면 보다 정확한 요소 상호작용이 가능합니다.
  • 다음을 사용하여 요소 식별을 위해 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']")))
로그인 후 복사

이러한 수정 사항을 통합하여, JavaScript를 통해 동적으로 로드되는 웹 페이지에서 요소를 효과적으로 찾을 수 있어 성공적인 웹 사용이 가능합니다. 긁어냅니다.

위 내용은 Selenium과 Python을 사용하여 여러 클래스 이름이 있는 웹 요소를 효율적으로 찾으려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿