IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Problème avec time.sleep() [Python 3.X]


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2022
    Messages : 3
    Par défaut Problème avec time.sleep()
    Bonjour à tous, et d'avance, désolé de la question de néophyte

    J'ai conçu ce petit programme pour automatiser un pointage que je dois réaliser tous les matins,
    cependant, je n'arrive pas à faire fonctionner time.sleep() pour voir pas à pas la réalisation du programme, bien que je n'ai aucune erreur, tout se réalise d'un bloc, et mon time.sleep() est totalement ignoré...

    Auriez-vous des pistes pour résoudre ce soucis ?

    Nom : Time.png
Affichages : 276
Taille : 158,4 Ko
    Images attachées Images attachées  

  2. #2
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 918
    Billets dans le blog
    7
    Par défaut
    Bonjour,
    Manifestement time.sleep() bloque la gestion d'évènement traité par sélenium. Comme je n'utilise pas sélenium, je connais pas l'alternative à time.sleep() que l'on utilise avec lui. Cependant avec les termes "sélenium vs time.sleep()" sur ton moteur de recherche, tu devrais trouver l'info...

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 699
    Par défaut
    Salut,

    Citation Envoyé par GeorgeOrson Voir le message
    Auriez-vous des pistes pour résoudre ce soucis ?
    Le soucis étant "je n'ai aucune erreur, tout se réalise d'un bloc, et mon time.sleep() est totalement ignoré...", il faudrait savoir comment est lancé votre programme ("normalement" ou depuis un IDE et si oui lequel).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 816
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 816
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par GeorgeOrson Voir le message
    et d'avance, désolé de la question de néophyte
    Ce n'est pas la question en elle-même qui pose souci, mais ta façon de nous l'exposer, préférant mettre une image inutilisable pour nous (à moins que tu t'imagines que l'on aille se retaper toutes les lignes une à une) alors qu'il ne faut pas un gros travail pour copier/coller un code dans le forum, code qu'on peut alors de notre côté le recopier ensuite avec la même facilité pour le tester.
    Tu te serais promené dans le forum un minimum tu aurais vu comment font les autres. Sinon c'est aussi mentionné dans les règles.

    Citation Envoyé par GeorgeOrson Voir le message
    Auriez-vous des pistes pour résoudre ce soucis ?
    Je pense que selenium (tout comme beaucoup d'outils évènementiels) ne prend pas en compte le sleep (c'est en général bien préconisé dans tous ces outils que comme ils gèrent eux-même un clavier+écran on ne peut pas les interfacer avec des actions qui elles-aussi gèrent le clavier+l'écran).
    En mettant print("1") avant le sleep et print("2") après le sleep, si mon hypothèse est correcte tu verras dans ton terminal un "1" apparaitre, puis 3 secondes plus tard un "2" apparaitre, tandis que le travail de selenium lui s'exécutera d'un bloc.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2022
    Messages : 3
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,



    Le soucis étant "je n'ai aucune erreur, tout se réalise d'un bloc, et mon time.sleep() est totalement ignoré...", il faudrait savoir comment est lancé votre programme ("normalement" ou depuis un IDE et si oui lequel).

    - W
    Désolé, j'aurais dû être plus précis dès le début, je lance directement le run dans PyCharm.

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2022
    Messages : 3
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Bonjour

    Ce n'est pas la question en elle-même qui pose souci, mais ta façon de nous l'exposer, préférant mettre une image inutilisable pour nous (à moins que tu t'imagines que l'on aille se retaper toutes les lignes une à une) alors qu'il ne faut pas un gros travail pour copier/coller un code dans le forum, code qu'on peut alors de notre côté le recopier ensuite avec la même facilité pour le tester.
    Tu te serais promené dans le forum un minimum tu aurais vu comment font les autres. Sinon c'est aussi mentionné dans les règles.
    Vraiment désolé, c'est vrai que je n'ai pas trop pris le temps de regarder le forum, my bad, et merci pour le rappel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    from selenium import webdriver
    from selenium.webdriver.chrome.service import Service
    from selenium.webdriver.common.by import By
    import time
    s = Service('C:/Program Files (x86)/chromedriver.exe')
    driver = webdriver.Chrome(service=s)
    url = 'https://www.formation-occ.com/index.php'
    driver.get(url)
     
    user = 'user'
    password = 'mdp'
     
    user_bar = driver.find_element(By.ID, 'inputUsername')
    password_bar = driver.find_element(By.ID, 'inputPassword')
    click_Button = driver.find_element(By.CSS_SELECTOR, "input[type='submit']")
     
    user_bar.send_keys(user)
    time.sleep(3)
    password_bar.send_keys(password)
    time.sleep(3)
    click_Button.click()
    time.sleep(3)
    Pointage_Button = driver.find_element(By.CSS_SELECTOR, "input[type='pointage']")
     
    Pointage_Button.click()
    Citation Envoyé par Sve@r Voir le message
    Je pense que selenium (tout comme beaucoup d'outils évènementiels) ne prend pas en compte le sleep (c'est en général bien préconisé dans tous ces outils que comme ils gèrent eux-même un clavier+écran on ne peut pas les interfacer avec des actions qui elles-aussi gèrent le clavier+l'écran).
    En mettant print("1") avant le sleep et print("2") après le sleep, si mon hypothèse est correcte tu verras dans ton terminal un "1" apparaitre, puis 3 secondes plus tard un "2" apparaitre, tandis que le travail de selenium lui s'exécutera d'un bloc.
    D'accord, je ne savais absolument pas.
    Mais du coup, pour ce qui est time.sleep() dans sélenium, c'est définitivement mort... Je me posais légitiment cette question après avoir vu, sur des pages de cours, des "profs" faisant des tutos sur Selenium utiliser time.sleep(). Après, ils avaient l'air sur des versions de Python bien antérieur.

  7. #7
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 198
    Par défaut
    Hello,
    Citation Envoyé par GeorgeOrson Voir le message
    Désolé, j'aurais dû être plus précis dès le début, je lance directement le run dans PyCharm.
    Si tu mets un point d'arrêt juste avant les send_keys dans ton programme et que tu lances ton programme en mode Debug dans Pycharm , tu pourras faire du pas à pas et voir ce qui se passe à chaque instruction.
    Ami calmant, J.P

  8. #8
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 816
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 816
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par GeorgeOrson Voir le message
    Vraiment désolé, c'est vrai que je n'ai pas trop pris le temps de regarder le forum, my bad, et merci pour le rappel.
    Pour poster du code, ce n'est pas <spoil> et </spoil> mais [code] et [/code]

    Citation Envoyé par GeorgeOrson Voir le message
    Mais du coup, pour ce qui est time.sleep() dans sélenium, c'est définitivement mort...
    Je n'ai pas dit que c'était ça mais que ça pouvait être ça (moi non plus je ne connais pas sélénium) et donné une méthode permettant de confirmer/infirmer l'hypothèse, ce qui permet ensuite de t'orienter sur autre chose (si c'est ça) ou sur "comment ça marche avec mes profs et pas avec moi" (si ce n'est pas ça). Par exemple PyCharm (un truc qui lui aussi possède sa propre gestion du clavier) peut aussi être à l'origine du souci (et dans ce cas, un lancement en direct de ton programme permettra de le résoudre).
    Accessoirement tu ne sembles pas être le seul ayant eu ce souci => https://www.google.fr/search?q=s%C3%...client=gws-wiz. Et cette page (citée dans la précédente) indique plus explicitement comment faire attendre sélénium.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problême avec fonction Sleep
    Par WDKyle dans le forum VB.NET
    Réponses: 8
    Dernier message: 31/03/2010, 11h30
  2. Problème avec fonction sleep
    Par pitxu dans le forum Apache
    Réponses: 2
    Dernier message: 07/02/2008, 03h27
  3. problème avec time.h
    Par dc.sara dans le forum C++
    Réponses: 5
    Dernier message: 08/01/2008, 09h27
  4. Problème avec fonction Sleep
    Par Evens dans le forum C++
    Réponses: 2
    Dernier message: 28/11/2007, 14h14
  5. [PHP-JS] problème avec time()
    Par maxtt dans le forum Langage
    Réponses: 14
    Dernier message: 31/07/2006, 04h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo