>웹 프론트엔드 >CSS 튜토리얼 >Selenium의 `span:contains('string')` 선택기가 실패하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

Selenium의 `span:contains('string')` 선택기가 실패하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-13 13:44:10209검색

Why Does Selenium's `span:contains('string')` Selector Fail, and How Can I Fix It?

Selenium: InvalidSelectorException 오류("span:contains('string')" 포함)

span:contains('string'이 포함된 CSS 선택기를 사용하여 요소를 찾으려고 할 때 ) Firefox용 Python Selenium에서는 다음 오류가 발생할 수 있습니다.

selenium.common.exceptions.InvalidSelectorException: Message: Given css selector expression "span:contains('string')" is invalid: InvalidSelectorError: 'span:contains('string')' is not a valid selector: "span:contains('string')"

이 문제는 다음과 같은 이유로 발생합니다. :contains 의사 클래스는 CSS 사양이나 기본적으로 Firefox 또는 Chrome에서 지원되지 않습니다. Selenium 1.0 Sizzle Selector Engine에만 적용되었지만 WebDriver는 이러한 선택기를 지원하지 않습니다.

대체 솔루션:

  • 속성 사용 선택기:

    element = "span[attribute_name=attribute_value]"
  • text(), contain() 및 Normalize-space() 메서드를 지원하는 XPath 사용:

    element = my_driver.find_element_by_xpath("//span[text()='Control panel']")
  • CSS를 지원하는 jQuery를 사용하세요. 선택기:

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

상식:

  • CSS 선택기는 브라우저 콘솔에서 기본적으로 지원되지 않지만 jQuery의 $() 단축키는 jQuery가 있을 때 사용할 수 있도록 document.querySelector를 재정의합니다. 페이지.

위 내용은 Selenium의 `span:contains('string')` 선택기가 실패하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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