Firefox で Python の Selenium を使用する場合、 CSS セレクター「span:contains('コントロール パネル')」を使用して要素を検索しようとすると、次のエラーが発生する場合があります:
selenium.common.exceptions.InvalidSelectorException: Given css selector expression "span:contains('Control panel')" is invalid: InvalidSelectorError: 'span:contains('Control panel')' is not a valid selector: "span:contains('Control panel')"
このエラーは、指定された CSS セレクターが無効であることを示します。 Issue#987 および Issue#1547 によると、「:contains」疑似クラスは Firefox または Chrome ではサポートされていません。
「:contains」擬似クラスは標準の CSS セレクターではないため、代替の属性セレクターに置き換える必要があります。例:
<code class="python">element = "span[attribute_name=attribute_value]"</code>
属性セレクターが使用できない場合は、次の XPath のいずれかを使用できます:
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']")
<code class="javascript">$('span:contains("Control panel")')</code>
CSS セレクターは、ブラウザ コンソールですが、JQuery は document.querySelector のショートカットを提供します。そのため、ページで CSS セレクターが有効になっている場合、JQuery は CSS セレクターをサポートする可能性があります。
以上がSelenium で「span:contains(\'String\')」\ による InvalidSelectorException を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。