>웹 프론트엔드 >CSS 튜토리얼 >Selenium이 'span:contains('Control panel')'을 사용하여 InvalidSelectorException을 발생시키는 이유는 무엇입니까?

Selenium이 'span:contains('Control panel')'을 사용하여 InvalidSelectorException을 발생시키는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-14 17:58:11602검색

Why Does Selenium Throw an InvalidSelectorException with

Selenium InvalidSelectorException with "span:contains('Control panel')"

CSS 선택기 "span:를 사용하여 요소를 찾으려는 시도: Selenium Python의 contain('Control panel')"은 InvalidSelectorException을 초래할 수 있습니다. 이 오류는 Firefox 또는 Chrome에서 "contains" 의사 클래스를 인식하지 못하기 때문에 발생합니다.

CSS 사양에는 ":contains" 의사 클래스가 포함되어 있지 않습니다. 따라서 표준을 준수하는 브라우저에서는 지원되지 않습니다. 또한 WebDriver는 Selenium 1.0에서 ":contains"를 사용할 수 있는 "Sizzle" 선택기 엔진을 지원하지 않습니다.

대체 솔루션

대신 ":contains" :contains"인 경우 태그를 사용하여 요소를 식별합니다.

element = "span[attribute_name=attribute_value]"

또는 XPath 표현식을 사용합니다.

  • "text()" 사용:
element = my_driver.find_element_by_xpath("//span[text()='Control panel']")
  • 사용 "contains()":
element = my_driver.find_element_by_xpath("//span[contains(.,'Control panel')]")
  • "normalize-space()" 사용:
element = my_driver.find_element_by_xpath("//span[normalize-space()='Control panel']")

jQuery 사용

jQuery는 해결 방법:

$('span:contains("Control panel")')

위 내용은 Selenium이 'span:contains('Control panel')'을 사용하여 InvalidSelectorException을 발생시키는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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