J'utilise Python et Selenium pour accéder à un site Web qui génère un email aléatoire. J'essaie de stocker cet email dans une variable et de le renvoyer.
def getemail(self): driver = self.driver driver.get("https://temp-mail.org/en/") time.sleep(2) ne = driver.find_element_by_xpath("//*[@id='mail']").text return ne
3 Réponses :
Il est
valeur = "" code>, pas comme texte entre l'ouverture et la balise de fermeture.
ne = driver.find_element_by_id("mail").get_attribute("value")
Si vous allez chercher un élément de rien d'autre qu'un identifiant, veuillez utiliser * _ by_id () code>. Il n'y a aucune raison de ne pas le faire. Je sais que OP a affiché que, mais nous devrions suggérer les meilleures pratiques lorsque nous pouvons améliorer leur code, même si ce n'est pas ce qui a été spécifiquement demandé.
@Jeff vous avez raison. Franchement, je n'ai même pas regardé Xpath. J'ai seulement vérifié s'il n'y a pas de _Elements _ code> avec
"s" code> à la fin :)
@furas réponse était assez proche. Cependant, pour extraire l'adresse e-mail em> vous devez induire webdiverwait em> pour le en utilisant en utilisant note forte>: Vous devez ajouter les importations suivantes: p>
visibilité_of_element_located () code> et vous pouvez utiliser l'un des éléments suivants StratégiesLocator :
css_selector code>: p>
xpath code>: p>
obtenez simplement cela par Modifiez la deuxième dernière ligne de votre code à ceci: P> get_attribute code>.
ne = driver.find_element_by_id("mail").get_attribute("value")
Bienvenue dans le débordement de la pile! C'est le genre de problème de sélénium qui vient beaucoup, mais n'est pas vraiment une bonne question; Il est probable que votre localisateur n'est pas correctement écrit. Veuillez suivre Ce guide sur les problèmes de débogage où vous ne pouvez pas trouver un élément dans Sélénium.
Êtes-vous sûr que conducteur.get (" temp-mail.org/fr/" ) est Travailler? Essayez d'imprimer une variable "pilote" en premier. Donc, vous pouvez savoir que le problème est ici ou dans les prochaines lignes :)
Dupliqué possible de selenium webdiver python Comment obtenir du texte de la balise d'entrée