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

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

Patricia Arquette
リリース: 2024-12-14 17:58:11
オリジナル
601 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート