ホームページ > ウェブフロントエンド > CSSチュートリアル > Selenium の `span:contains('string')` セレクターが失敗するのはなぜですか?どうすれば修正できますか?

Selenium の `span:contains('string')` セレクターが失敗するのはなぜですか?どうすれば修正できますか?

Patricia Arquette
リリース: 2024-12-13 13:44:10
オリジナル
217 人が閲覧しました

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

Selenium: "span:contains('string')" による InvalidSelectorException エラー

span:contains('string' で CSS セレクターを使用して要素を検索しようとした場合) ) Python Selenium for Firefox では、次のような問題が発生する可能性があります。 error:

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 はそのようなセレクターをサポートしていません。

代替ソリューション:

  • Use 属性セレクター:

    element = "span[attribute_name=attribute_value]"
    ログイン後にコピー
  • text()、contains()、および Normalize-space() メソッドをサポートする XPath を使用します:

    element = my_driver.find_element_by_xpath("//span[text()='Control panel']")
    ログイン後にコピー
  • CSS をサポートする jQuery を採用セレクター:

    $('span:contains("Control panel")')
    ログイン後にコピー

トリビア:

  • CSS セレクターはブラウザー コンソールではネイティブにサポートされていませんが、jQuery の $() ショートカットはサポートされません。 document.querySelector をオーバーライドして、jQuery が存在する場合にそれらの使用を有効にします。ページ。

以上がSelenium の `span:contains('string')` セレクターが失敗するのはなぜですか?どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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