Maison >développement back-end >Tutoriel Python >EC.presence_of_element_located de Selenium peut-il utiliser des sélecteurs de classe au lieu d'identifiants ?
Pouvez-vous utiliser EC.presence_of_element_located de Selenium avec un sélecteur de classe au lieu d'un sélecteur d'ID ?
Vous essayez d'utiliser l'EC de Selenium. méthode présence_of_element_located pour attendre qu'un élément avec la classe ng-binding ng-scope devienne présent sur une page Web, mais cela ne fonctionne pas. Le message d'erreur que vous recevez est :
Message: invalid selector: Compound class names not permitted
Cette erreur se produit car EC.presence_of_element_located ne prend pas en charge l'utilisation de plusieurs noms de classe dans son sélecteur.
Solution
Pour attendre un élément avec une classe spécifique utilisant Selenium, vous pouvez utiliser le localisateur By.CLASS_NAME. Voici comment modifier votre code :
element = WebDriverWait(driver, 100).until(EC.presence_of_element_located((By.CLASS_NAME, "ng-binding ng-scope")))
Ce code attendra qu'un élément avec la classe ng-binding ng-scope devienne visible sur la page.
Supplémentaire Notes
Dans certains cas, vous devrez peut-être également utiliser la méthode EC.visibility_of_element_located au lieu de EC.presence_of_element_located. Cette méthode attendra que l'élément devienne non seulement présent mais également visible sur la page.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!