>백엔드 개발 >파이썬 튜토리얼 >Selenium의 EC.presence_of_element_location을 사용하여 클래스 속성별로 요소를 찾는 방법은 무엇입니까?

Selenium의 EC.presence_of_element_location을 사용하여 클래스 속성별로 요소를 찾는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-25 16:20:11813검색

How to Locate Elements by Class Attribute Using Selenium's EC.presence_of_element_located?

클래스 속성과 함께 EC.presence_of_element_location을 사용하는 방법

Selenium의 EC.presence_of_element_location 메소드를 WebDriverWait와 함께 사용할 때 찾을 요소를 지정할 수 있습니다. ID 대신 클래스 속성을 사용합니다. 방법은 다음과 같습니다.

원본 코드:

element = WebDriverWait(driver,100).until(EC.presence_of_element_located((By.ID, "tabla_evolucion")))

ID로 요소를 찾으려고 시도합니다. 대신 클래스별로 요소를 찾으려면 "By.ID"를 "By.CLASS"로 변경하고 클래스 이름을 제공하세요.

element = WebDriverWait(driver,100).until(EC.presence_of_element_located((By.CLASS, "ng-binding ng-scope")))

참고: 대화형 작업에 Presence_of_element_ located를 사용하지 마세요. . 대신 visible_of_element_location 또는 element_to_be_clickable을 선호하세요.

추가:

  • CSS_SELECTOR 또는 XPATH를 사용하면 ID와 클래스 속성을 결합하여 보다 정확한 요소를 만들 수 있습니다. 위치:
# 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']")))
  • 복합 클래스 이름은 By.class에서 허용되지 않습니다. 위 코드는 "ng-bind" 및 "ng-scope" 클래스를 모두 사용하여 요소를 찾으려고 시도합니다.

위 내용은 Selenium의 EC.presence_of_element_location을 사용하여 클래스 속성별로 요소를 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.