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

Firefox의 Selenium에서 'span:contains('string')'이 실패하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

DDD
풀어 주다: 2024-12-29 04:29:10
원래의
694명이 탐색했습니다.

Why Does

Firefox를 사용하는 Selenium의 "span:contains('string')"에서 잘못된 SelectorException이 발생합니다

CSS로 요소를 찾으려고 할 때 Firefox를 사용하는 Selenium Python의 선택기에서 "span:contains('Control panel')" 표현식에서 InvalidSelectorException이 발생할 수 있습니다. "주어진 CSS 선택기 표현식 'span:contains('Control panel')'이 유효하지 않습니다."라는 메시지가 표시됩니다.

GitHub 문제 #987 및 #1547에 설명된 대로 :contains 의사 클래스는 다음에서 지원되지 않습니다. CSS 사양이므로 Firefox에서 인식되지 않습니다. 이 의사 클래스는 Selenium 1.0에서 사용되는 Sizzle 선택기 엔진의 일부였지만 WebDriver는 Sizzle 스타일 CSS 선택기를 지원하지 않습니다.

기본적으로 CSS 선택기를 지원하지 않는 브라우저(예: IE7 및 IE8)의 경우 :contains는 여전히 작동할 수 있으며, 이로 인해 다양한 브라우저에서 불일치가 발생할 수 있습니다. 보다 안정적인 접근 방식은 다음과 같은 범위 태그의 다른 속성을 사용하는 것입니다.

대체 솔루션:

의도한 요소가 다음과 같은 범위인 경우 "제어판"이라는 텍스트를 사용하면 일반적인 DOM을 기반으로 다음 XPath 표현식 중 하나를 사용할 수 있습니다. 트리:

  • 텍스트() 사용:

  • 사용 포함():

  • normalize-space() 사용:

사용 jQuery:

jQuery는 :contains 의사 클래스도 지원하므로 다음 표현식을 사용할 수 있습니다.

추가 참고:

CSS 선택기는 브라우저 콘솔에서 기본적으로 지원되지 않지만 jQuery는 $('...') 단축키를 통해 이를 지원한다는 점을 기억하세요. 이는 일반적으로 기본 document.querySelector 메서드를 재정의합니다.

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

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