Selenium에서 여러 클래스 이름을 가진 요소를 어떻게 찾을 수 있습니까?

DDD
풀어 주다: 2024-11-16 22:14:03
원래의
938명이 탐색했습니다.

How Can I Locate Elements with Multiple Class Names in Selenium?

여러 클래스 이름이 있는 요소에 대한 로케이터 전략

여러 클래스 이름이 있는 웹 요소를 식별하는 것은 Java의 @FindBy 주석과 같이 공백으로 구분된 단일 값입니다. 이 문제를 해결하려면 다음 대체 전략을 고려하십시오.

XPath 로케이터

XPath 표현식은 클래스 이름을 포함한 여러 속성을 기반으로 요소를 일치시키는 유연성을 제공합니다. 다음 전략을 사용할 수 있습니다.

  • 정확한 일치: 이 접근 방식은 원하는 순서로 지정된 클래스 이름과 정확히 일치하는 요소를 식별합니다.
driver.findElement(By.xpath("//div[@class='value test']"));
로그인 후 복사
  • Contains Constraint: 이 전략은 순서에 관계없이 지정된 클래스 이름을 포함하는 요소를 찾습니다.
driver.findElement(By.xpath("//div[contains(@class, 'value test')]"));
로그인 후 복사
  • 여러 개의 제약 조건 포함 : 요소를 두 클래스 이름과 일치시키려면 and 연산자를 사용하세요.
driver.findElement(By.xpath("//div[contains(@class, 'value') and contains(@class, 'test')]"));
로그인 후 복사

CSS 선택기

CSS 선택기는 선택을 위한 또 다른 옵션을 제공합니다. 여러 클래스 이름을 가진 요소:

  • 완전 일치: XPath와 유사하게 이 선택기는 원하는 순서로 지정된 클래스 이름과 일치하는 요소를 식별합니다.
driver.findElement(By.cssSelector("div[class='value test']"));
로그인 후 복사
  • 하위 문자열 포함: 이 선택기는 지정된 하위 문자열을 포함하는 클래스 이름이 있는 요소를 찾습니다:
driver.findElement(By.cssSelector("div[class*='value test']"));
로그인 후 복사
  • 클래스 조합: 여러 클래스 이름이 있는 요소를 찾으려면 마침표(.) 연산자를 사용하여 결합하세요.
driver.findElement(By.cssSelector("div.value.test"));
로그인 후 복사

추가 고려 사항

사용 시 클래스 이름이 여러 개인 경우 다음 사항에 주의하세요.

  • 클래스 이름의 순서는 정확히 일치하는 위치 지정자의 일치 결과에 영향을 줄 수 있습니다.
  • XPath 위치 지정자는 일반적으로 CSS 선택자보다 느린 경향이 있습니다. .
  • CSS 선택기는 모든 웹 브라우저에서 지원되지 않을 수 있습니다.

위 내용은 Selenium에서 여러 클래스 이름을 가진 요소를 어떻게 찾을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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