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 중국어 웹사이트의 기타 관련 기사를 참조하세요!