-1
votes

Comment récupérer le texte d'un élément d'entrée?

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 commentaires

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


3 Réponses :


1
votes

Il est code> et envoyer un email est dans son attribut valeur = "" code>, pas comme texte entre l'ouverture et la balise de fermeture.

ne = driver.find_element_by_id("mail").get_attribute("value")


2 commentaires

Si vous allez chercher un élément de rien d'autre qu'un identifiant, veuillez utiliser * _ by_id () . 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 _ avec "s" à la fin :)



0
votes

@furas réponse était assez proche. Cependant, pour extraire l'adresse e-mail vous devez induire webdiverwait pour le visibilité_of_element_located () et vous pouvez utiliser l'un des éléments suivants StratégiesLocator :

  • en utilisant css_selector : XXX

  • en utilisant xpath : XXX

  • note : Vous devez ajouter les importations suivantes: XXX


0 commentaires

0
votes

obtenez simplement cela par get_attribute code>.

Modifiez la deuxième dernière ligne de votre code à ceci: P>

ne = driver.find_element_by_id("mail").get_attribute("value")


0 commentaires