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

Réseau/Web Python Discussion :

Selenium exception stale element reference [Python 3.X]


Sujet :

Réseau/Web Python

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2006
    Messages : 582
    Points : 265
    Points
    265
    Par défaut Selenium exception stale element reference
    Bonjour,
    j'utilise Selenium et chromedriver (version 86.0.4240.111) pour automatiser la programmation d'épingles Pinterest. Le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #On clique sur le bouton du menu déroulant Tableaux:
    btn_dropdown_menu = driver.find_element_by_xpath("//button[@data-test-id='board-dropdown-select-button']")
    btn_dropdown_menu.click()
    time.sleep(5)
     
    #On clique ensuite sur le nom du tableau:
    btn_tableau = driver.find_element_by_xpath("//div[@title='Mon Tableau']")
    btn_tableau.click()
    Le dernier clic provoque l'erreur suivante:
    selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
    Les différentes solutions trouvées par ailleurs ne fonctionnent pas (la 1ère étant l'ajout du time.sleep() )
    Pourtant, dans la console de Chrome, la commande xpath:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $x("//div[@title='Mon Tableau']")
    me retourne bien l'élément recherché!

    Je ne sais plus quoi faire !?!

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

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2008
    Messages : 1 982
    Points : 5 015
    Points
    5 015
    Par défaut
    hello,
    j'ai trouvé quelqu'un qui avait le même problème mais c'est en angliche :




    What is the line which gives exception ??

    The reason for this is because the element to which you have referred is removed from the DOM structure




    I was facing the same problem while working with IEDriver. The reason was because javascript loaded the element one more time after i have referred so my date reference pointed to an unexisting object even if it was right their on UI. I used the following workaround.




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    try {
        WebElement date = driver.findElement(By.linkText(Utility.getSheetData(path, 7, 1, 2)));
        date.click();
    }
    catch(org.openqa.selenium.StaleElementReferenceException ex)
    {
        WebElement date = driver.findElement(By.linkText(Utility.getSheetData(path, 7, 1, 2)));
        date.click();
    }
    Je ne sais pas si c'est le même cas que toi mais la solution proposée est de refaire le findElement dans le traitement de l'exception.



    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2006
    Messages : 582
    Points : 265
    Points
    265
    Par défaut
    Merci pour ta réponse! J'avais déjà testé cette solution, sans succès hélas!
    (le codes était d'ailleurs toujours présent dans mon script, mis en commentaires).
    Et là, je viens de réessayer et... ça marche! Absolument incompréhensible.
    J'avais passé des heures les jours précédent avec le même code sans succès...

    Merci!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/12/2010, 11h49
  2. Réponses: 6
    Dernier message: 29/11/2010, 16h09
  3. exception dernier élément array
    Par licorne dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 13/08/2007, 10h24
  4. Null Reference Exception
    Par mischa dans le forum ASP.NET
    Réponses: 2
    Dernier message: 07/06/2007, 11h59
  5. Elément d'un tableau peut-il être reférencé?
    Par scoob67 dans le forum Linux
    Réponses: 9
    Dernier message: 20/10/2005, 18h43

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