Partage
  • Partager sur Facebook
  • Partager sur Twitter

Cliquer sur un élément avec Selenium

    16 septembre 2020 à 19:40:23

    Bonjour, 

    Je cherche à cliquer sur un attribut class contenue dans un div avec selenuim et voici mon code :

    from selenium import webdriver
    from selenium.webdriver.common.by import By 
    
    driver = webdriver.Chrome()
    driver.get('https://www.flashscore.fr/')
    
    driver.find_element(By.CSS_SELECTOR, ".header__button header__button--search").click();
    

    Et voici l'erreur renvoyer :

    >>>
    >>> driver.find_element(By.CSS_SELECTOR, ".header__button header__button--search").click();
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "C:\Users\avis\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 976, in find_element
        return self.execute(Command.FIND_ELEMENT, {
      File "C:\Users\avis\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
        self.error_handler.check_response(response)
      File "C:\Users\avis\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
        raise exception_class(message, screen, stacktrace)
    selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".header__button header__button--search"}
      (Session info: chrome=85.0.4183.102)


    Et voici la doc selenium.

    Pouvez-vous m'aider s'il vous plaît ?

                                             Merci d'avance

    -
    Edité par sarazin 16 septembre 2020 à 20:12:35

    • Partager sur Facebook
    • Partager sur Twitter
      17 septembre 2020 à 0:34:30

      le message est clair, le problème ce n'est pas le clic, c'est qui ne trouve pas l'élément avec ton sélecteur css.
      • Partager sur Facebook
      • Partager sur Twitter
        17 septembre 2020 à 1:03:54

        Comment je peux faire pour qu'il l'a trouve, j'ai fait quelques recherche est j'ai vu que sur certains site les élément prenait du temps à charger.

        Et donc j'ai aussi trouvé cette fonction element_to_be_clickable(), son but est d'attendre que l'élément s'affiche correctement est deviennent cliquable. Je les utliser comme ça : 

        element = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CLASS_NAME, "header__button header__button--search"))
        	element.click();

        Mais cela m'affiche  cette erreur là :

          File "<stdin>", line 2
            element.click()
            ^
        SyntaxError: invalid syntax
        >>>


        Je ne vois pas d'erreur de syntaxe.

        D'ou peut provenir l'erreur ?

        Et sinon l'utilisation de la fonction est-elle bonne ?

        -
        Edité par sarazin 17 septembre 2020 à 1:26:47

        • Partager sur Facebook
        • Partager sur Twitter
          17 septembre 2020 à 7:46:37

          l'erreur viens de l'indentation inutile

          • Partager sur Facebook
          • Partager sur Twitter

          Cliquer sur un élément avec Selenium

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown