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 :

selenium remplacer Expected_Conditions par une variable


Sujet :

Python

  1. #1
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 644
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 644
    Par défaut selenium remplacer Expected_Conditions par une variable
    Bonjour,

    j'ai dans mon code une suite de try/except qui font la même chose avec des arguments différents.
    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
    try:
        Menu = WebDriverWait(browser, 5).until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".export-btn")))
    except TimeoutException:
        _quitting()
    Menu.click()
    _waiting("download")
    try:
        DL = WebDriverWait(browser, 5).until(EC.element_to_be_clickable((By.ID, "calendar-export-pdf")))
    except TimeoutException:
        _quitting()
    if not os.path.isdir(dlDir):
        print("creating temporary download directory")
        os.mkdir(dlDir)
    print("downloading file...",end='')
    DL.click()
    je pense faire une boucle sur chaque argument :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    method = { "List":"LINK_TEXT","Menu":"CSS_SELECTOR","DL":"ID" }
    link = { "List":"List view","Menu":".export-btn","DL":"calendar-export-pdf" }
     
    for fn in method.keys():
        print(_builder(fn))
        _waiting(fn)
        by = "By.%s, %s" % (method[fn], link[fn])
        try:
            t = WebDriverWait(browser, 5).until( EC.element_to_be_clickable (( By. + method[val] + , + link[val] )) ) # <- ICI
        except TimeoutException:                                                                                                                                                                                                                                                     
            _quitting()
        t.click()
    comment faire ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 644
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 644
    Par défaut
    c'est un tuple !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    method = { "List":(By.LINK_TEXT,"List view") , "Menu":(By.CSS_SELECTOR,".export-btn"),"DL":(By.ID,"calendar-export-pdf") }
    for fn in method.keys():
        _waiting(fn)
        try:
            t = WebDriverWait(browser, 5).until( EC.element_to_be_clickable( method[fn] ) )
            except TimeoutException:
            _quitting()
        t.click()
    reste à savoir si c'est une méthode correcte.

    c'est "optimisable" ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

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

Discussions similaires

  1. Indiquer à Sonar qu'une variable n'est jamais null
    Par BugFactory dans le forum Qualimétrie
    Réponses: 2
    Dernier message: 12/03/2019, 18h22
  2. fonction qui indique qu'une variable est d'un type entier
    Par piotrr dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 21/06/2007, 16h05
  3. [BES] Création d'une variable d'environnement
    Par NGI80 dans le forum Autres
    Réponses: 2
    Dernier message: 17/10/2002, 07h31
  4. Désigner une variable avec une variable?
    Par littleman dans le forum Paradox
    Réponses: 4
    Dernier message: 12/08/2002, 11h21
  5. Réponses: 4
    Dernier message: 05/06/2002, 14h35

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