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 chrome invalid locator


Sujet :

Python

  1. #1
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2021
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2021
    Messages : 6
    Par défaut selenium chrome invalid locator
    Bonjour,
    Je cherche à creer une fonction pour "selectionner" un element d'une page web et j'ai le message d'erreur suivant :
    selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: invalid locator
    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
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    from selenium import webdriver
    from selenium.common.exceptions import NoSuchElementException
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.select import Select
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.support.select import Select
    from selenium.webdriver.chrome.options import Options
    import requests
    import PySimpleGUI as sg
     
    def get_page_element(by_used, value_used):
     
        global browser
        global sg
        try:
            browser.find_element(by=by_used, value=value_used)
        except NoSuchElementException:
            sg.Popup('Le code de la page a changé')
            browser.quit()
            exit()
     
    the_site = 'https://www.haute-garonne.gouv.fr/booking/create/13131/'
     
    try:
            browser = webdriver.Chrome()
        except:
            sg.Popup('Le programme ne trouve pas chromedriver.exe')
            exit()
     
    browser.get(the_site)
    browser.implicitly_wait(0.5)
     
    get_page_element('By.XPATH', "//input[@id='condition']").click()
    j'ai donc l'erreur selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: invalid locator

    si je remplace le get_page_element('By.XPATH', "//input[@id='condition']").click() par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    try:
        browser.find_element(by=By.XPATH, value="//input[@id='condition']").click()
    except NoSuchElementException:
        sg.Popup('Le code de la page a changé')
        browser.quit()
        exit()
    alors je n'ai aucune erreur.

    j'ai essayé de rajouter/supprimer les simples/doubles guillemets, rien n'y fait.

    Auriez-vous une idée ?

    Merci pour votre aide .

  2. #2
    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 marcdinard Voir le message
    Auriez-vous une idée ?
    La chaîne de caractères associée à By.XPATH n'est pas 'By.XPATH' (mais 'xpath') - voir la documentation -.

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

  3. #3
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2021
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2021
    Messages : 6
    Par défaut [Python 3.X] selenium chrome invalid locator
    Bonjour,

    merci pour ton aide mais je ne comprend pas ce que tu expliques : exemple tiré de la doc que tu mentionnes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    from selenium.webdriver.common.by import By
     
    driver.find_element(By.XPATH, '//button[text()="Some text"]')
    driver.find_elements(By.XPATH, '//button')
    c'est bien By.XPATh et non xpath comme tu indiques

    Merci

  4. #4
    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
    Citation Envoyé par marcdinard Voir le message
    c'est bien By.XPATh et non xpath comme tu indiques
    By.XPATH est un attribut associé à la chaîne de caractères "xpath" comme mentionné dans la documentation... Et si vous ne savez pas faire la différence entre "symbole" et "littéral", pas facile de vous expliquer quoi que ce soit.

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

Discussions similaires

  1. [Python 3.X] Selenium Chrome Webscrapping: naviguer avec find_elements_by_xpath
    Par jbonneval dans le forum Général Python
    Réponses: 0
    Dernier message: 04/06/2020, 09h47
  2. Réponses: 0
    Dernier message: 20/03/2019, 15h56
  3. F5 et location.reload(true) c'est pas la même chose en chrome ?
    Par bouhmid86 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 08/12/2012, 14h10
  4. Problème Selenium et Google Chrome
    Par francoisPLN dans le forum Test
    Réponses: 1
    Dernier message: 03/08/2012, 15h01
  5. window.location.reload() chrome et ie7
    Par kaiser59 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/10/2010, 23h49

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