ホームページ  >  記事  >  バックエンド開発  >  Selenium Python Firefox で「span:contains(\'string\')」を使用して「Selenium.common.Exceptions.InvalidSelectorException」を処理する方法

Selenium Python Firefox で「span:contains(\'string\')」を使用して「Selenium.common.Exceptions.InvalidSelectorException」を処理する方法

DDD
DDDオリジナル
2024-10-18 22:00:04921ブラウズ

How to Handle

エラー: Selenium Python Firefox での "span:contains('string')" による "Selenium.common.Exceptions.InvalidSelectorException"

「span:contains('コントロールパネル')」などの「contains」関数を持つ CSS セレクターを使用して要素を検索しようとすると、次のエラーが発生する場合があります。

selenium.common.exceptions.InvalidSelectorException: Message: Given css selector expression "span:contains('Control panel')" is invalid: InvalidSelectorError: 'span:contains('Control panel')' is not a valid selector: "span:contains('Control panel')"

:

このエラーは、「:contains」疑似クラスが Firefox または Chrome のネイティブ CSS セレクターでサポートされていないために発生します。以前は Selenium 1.0 が依存する Sizzle Selector Engine で使用されていましたが、ブラウザ間で不一致があったため、WebDriver では削除されました。

解決策 1: 他の CSS 属性を使用する

「:contains」疑似クラスを使用する代わりに、クラス、ID、その他の識別プロパティなどの別の CSS 属性を使用して要素を検索します。例:

element = "span[attribute_name=attribute_value]"

解決策 2: XPath を使用する

XPath は「:contains」擬似クラスをサポートしているため、それを使用して要素を見つけることができます。

  • 「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']")

解決策 3: jQuery を使用する

または、jQuery を使用して、 「contains」関数を含む要素:

$('span:contains("Control panel")')

以上がSelenium Python Firefox で「span:contains(\'string\')」を使用して「Selenium.common.Exceptions.InvalidSelectorException」を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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