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 :

Sélénium - accès à un bouton [Python 3.X]


Sujet :

Réseau/Web Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2019
    Messages : 20
    Points : 16
    Points
    16
    Par défaut Sélénium - accès à un bouton
    Bonjour,

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    from selenium import webdriver
     
    driver = webdriver.Chrome()
    driver.get("https://www.linkedin.com/login/fr?fromSignIn=true&trk=guest_homepage-basic_nav-header-signin")
     
    username = driver.find_element_by_id("username")
    password = driver.find_element_by_id("password")
     
    username.send_keys("my username")
    password.send_keys("my password")
     
    driver.find_element_by_link_text("S'identifier").click()
    Tout marche bien sauf la dernière ligne, qui ne trouve pas le bon bouton. Etant donné que ce bouton n'a ni nom ni ID je ne trouve pas de solution.

    Merci pour votre aide,

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

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    hello,
    tu peux utiliser un xpath pour trouver le bouton qui contient le libellé S’identifier comme ceci par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    driver.find_element_by_xpath('//button[text()="S’identifier"]').click()
    ou par un attribut par exemple par l'attribut aria-label :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    driver.find_element_by_xpath('//button[@aria-label="S’identifier"]').click()
    A noter qu'il y avait un piège dans le texte S’identifier du bouton :
    l'apostrophe utilisée a pour code hexa E2 et pas le 27 classique :
    E2 -> S’identifier
    27 -> S'identifier

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

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2019
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Merci!

    Effectivement je ne comprenais pas pourquoi le texte n'allait pas, je n'aurais jamais pensé à l'apostrophe !

    Je ne sais pas trop comment marche une recharche par xpath, j'ai essayé de comprendre et de m'en inspirer pour essayer ensuite de cliquer là où l'on publie un post:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    driver.find_element_by_xpath('//button[data-control-name()="share.sharebox_focus"]').click()
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    driver.find_element_by_xpath('//button[data-control-name="share.sharebox_focus"]').click()
    Mais ça ne veut pas...

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

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    hello,

    si data-control-name est un attribut il faut mettre un @ comme ceci par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    driver.find_element_by_xpath('//button[@data-control-name="share.sharebox_focus"]').click()
    ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2019
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Merci beaucoup !

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

Discussions similaires

  1. accès à un bouton d'un autre form
    Par gonzo59 dans le forum C#
    Réponses: 11
    Dernier message: 20/03/2009, 09h42
  2. verrouiller l'accès à un bouton de commande selon l'utilisateur
    Par arkorrigan dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 02/06/2008, 13h33
  3. Surfer en C#, accès à un bouton d'une page WEB
    Par moihenry dans le forum C#
    Réponses: 3
    Dernier message: 08/04/2007, 17h39
  4. Réponses: 24
    Dernier message: 14/03/2007, 15h45
  5. Accès au boutons d'un JScrollBar
    Par aDamas dans le forum Composants
    Réponses: 1
    Dernier message: 03/11/2005, 11h38

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