ホームページ >ウェブフロントエンド >CSSチュートリアル >Selenium が「span:contains('コントロール パネル')」で InvalidSelectorException をスローするのはなぜですか?

Selenium が「span:contains('コントロール パネル')」で InvalidSelectorException をスローするのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-14 17:58:11602ブラウズ

Why Does Selenium Throw an InvalidSelectorException with

「span:contains('コントロール パネル')」による Selenium InvalidSelectorException

CSS セレクター「span:」を使用して要素を検索しようとしています。 Selenium Python で contains('コントロール パネル')" を実行すると、無効なセレクター例外。このエラーは、「contains」擬似クラスが Firefox または Chrome で認識されないために発生します。

CSS 仕様には、「:contains」擬似クラスが含まれていません。そのため、標準に準拠するブラウザではサポートされません。さらに、WebDriver は、Selenium 1.0 で ":contains" の使用を許可していた "Sizzle" セレクター エンジンをサポートしていません。

代替ソリューション

" の代わりに: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('コントロール パネル')」で InvalidSelectorException をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。