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 onclick javascript event [Python 3.X]


Sujet :

Python

  1. #1
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut Selenium onclick javascript event
    Bonsoir,
    Je navigue parmi des onglets sur une page web et je suis bloqué à un moment donné.
    J'arrive sur un bouton sur lequel je souhaite cliquer :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <td class="milieu"><a href="#" onClick="javascript:rechercher()" class="bouton" onclick="javascript:rechercher()">Rechercher</a>		</td>
    Entre le </a> et le </td>, j'ai une icône "event" lorsque j'examine l'élément.
    J'ai teté plusieurs choses dont celle qui me paraît la plus logique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    driver.findElement_by_text("Rechercher").click()
    Sans succès.
    Lorsque j'affiche la recherche, je n'ai aucun objet, donc rien de trouvé apparemment.
    Bonne soirée.

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Salut,

    Une recherche par texte n'est peut-être pas assez précis, je veux dire que le problème c'est qu'il peut y avoir plusieurs éléments pouvant avoir ce texte...

    De mémoire (on avait vu cela dans un autre fil) il y a un équivalent à la fonction queryselector sinon on peut éxécuter du JS...

    Avec un sélecteur on peut être plus précis (utiliser les deux classes "milieu" et "bouton", les balises <td> et <a>...).

  3. #3
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Désolé, mais cela ne m'aide pas.
    Merci quand même.

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Est-ce que tu peux tester un code JS pour voir ? Je veux dire dans la console du navigateur une fois la page chargée ? Il faudrait savoir si cela fonctionne de cette manière avant de passer à selenium...

  5. #5
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Désolé, je ne sais pas faire cela.

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Ben tu charges ta page, tu tapes F12 et tu vas dans la console et tu colles l’instruction à exécutée...

    Exemple d’instruction : document.querySelector("td.milieu a.bouton").click()

  7. #7
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Citation Envoyé par Beginner. Voir le message
    Ben tu charges ta page, tu tapes F12 et tu vas dans la console et tu colles l’instruction à exécutée...

    Exemple d’instruction : document.querySelector("td.milieu a.bouton").click()
    Si tu n'y arrives pas en JS avec la console, essaye ça :

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    from selenium import webdriver
     
    url = "..."
     
    browser = webdriver.Firefox()
    # browser = webdriver.Chrome()
    browser.get(url)
     
    javaScript = "document.querySelector('td.milieu a.bouton').click()"
    browser.execute_script(javaScript)

    A toi de mettre le bon lien dans le code...

  8. #8
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Merci, bon en fait, j'ai réussi en passant par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    driver.find_element_by_xpath("//a[contains(text(), 'Rechercher')]").click()
    Malheureusement, le reste de mon code ne fonctionne pas non plus : le code source de la page apparemment a changé entre hier et aujourd'hui...

  9. #9
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Ben via le chemin ça peut marcher mais si le chemin change (par exemple en ajoutant un élément ou en changeant le texte) ça ne marchera plus...

  10. #10
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    C'est clair.
    En même temps, d'autres éléments peuvent changer aussi.
    Merci à toi pour ton aide.

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

Discussions similaires

  1. onblur onclick javascript
    Par imanoual dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 10/04/2009, 17h06
  2. case à cocher onclick javascript
    Par chris_013 dans le forum JSF
    Réponses: 3
    Dernier message: 09/02/2009, 16h34
  3. Simple onclick javascript sur un lien
    Par PsychedeChed dans le forum ASP.NET
    Réponses: 10
    Dernier message: 26/01/2009, 22h21
  4. onclick javascript
    Par ph_anrys dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/11/2007, 10h42
  5. [DOM] javascript event dom
    Par pittacos dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/04/2007, 21h15

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