Selenium の EC.presence_of_element_located を ID セレクターの代わりにクラス セレクターで使用できますか?
Selenium の EC を使用しようとしています。クラスの要素を待機する present_of_element_located メソッドng-binding ng-scope が Web ページ上に存在するようになりますが、機能しません。表示されるエラー メッセージは次のとおりです:
Message: invalid selector: Compound class names not permitted
このエラーは、EC.presence_of_element_located がセレクターでの複数のクラス名の使用をサポートしていないために発生します。
解決策
Selenium を使用して特定のクラスの要素を待機するには、 By.CLASS_NAME ロケーター。コードを変更する方法は次のとおりです。
element = WebDriverWait(driver, 100).until(EC.presence_of_element_located((By.CLASS_NAME, "ng-binding ng-scope")))
このコードは、ng-binding ng-scope クラスの要素がページに表示されるまで待機します。
追加注
場合によっては、代わりに EC.visibility_of_element_located メソッドを使用する必要がある場合もあります。 EC.presence_of_element_located の。このメソッドは、要素が存在するだけでなく、ページ上に表示されるようになるまで待機します。
以上がSelenium の EC.presence_of_element_located は ID の代わりにクラス セレクターを使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。