CSS セレクター「span:contains('コントロール パネル')」を使用して要素を検索しようとしたとき"、InvalidSelectorException が発生し、「指定された CSS セレクター式 "span:contains('コントロール パネル')" は無効です」というエラーが表示されます。
問題 #987 と #1547 で説明したように、:contains pseudo-class は CSS 仕様に含まれておらず、Firefox と Chrome の両方でサポートされていません。この疑似クラスは、Selenium 1.0 で使用される Sizzle Selector Engine に固有のものでした。ただし、WebDriver は Sizzle の CSS セレクターを組み込むことを選択しなかったため、この不一致が生じました。
この問題を効果的に解決するには、 の代替属性を使用します。タグ:
element = "span[attribute_name=attribute_value]"
提供された DOM ツリーを使用して要素を見つけるには、次の 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']")
$('span:contains("Control panel")')
以上が「span:contains(\'string\')」で InvalidSelectorException を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。