エラー: 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」擬似クラスをサポートしているため、それを使用して要素を見つけることができます。
element = my_driver.find_element_by_xpath("//span[text()='Control panel']")
element = my_driver.find_element_by_xpath("//span[contains(.,'Control panel')]")
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 サイトの他の関連記事を参照してください。