Partage
  • Partager sur Facebook
  • Partager sur Twitter

Automatisation navigation web

Splinter

Sujet résolu
    17 février 2016 à 14:55:29

    Bonjour à tous,

    J'essaye d'automatiser une procédure web en Python (que je ne connais pas du tout) et je rencontre quelques problèmes.
    Voici ce que je veux faire:

    - Ouvrir cet url : https://umap.openstreetmap.fr/fr/map/new/#6/51.000/2.000

    - cliquer sur "Importer des données" (à droite)

    - cliquer sur "Sélectionner un fichier" et lui donner le lien vers le fichier ("C:\...\...\...\fichier")

    - cliquer sur "importer"

    Je bloque dès la deuxième étape, lorsqu'il faut cliquer sur "Importer des données". J'ai essayé de trouver de la doc Splinter mais pas grand chose ne m'a aidé, la doc est souvent très petite.

     J'ai essayé d'accéder au bouton d'import via find_by_xpath mais j'ai une erreur :

    with Browser() as browser:
        # Visit URL
        url = "https://umap.openstreetmap.fr/fr/map/new"
        browser.visit(url)
    browser.find_by_xpath('//*[@id="map"]/div[2]/div[2]/div[3]/div/a[1]').click()
    browser.quit()

    l'erreur : 

    "socket.error: [Errno 10061] Aucune connexion n'a pu être établie car l'ordinateur cible l'a expressément refusée"

    EDIT:

    En utilisant Selenium c'est en fait plu simple, j'arrive maintenant à ouvrir l'exporer windows, reste plus qu'à trouver comment lui donner le fichier ...

    #python:
    from selenium.webdriver import Firefox
    
    YOUR_PAGE_URL = 'https://umap.openstreetmap.fr/fr/map/new/#6/51.000/2.000'
    NEXT_BUTTON_XPATH = '//*[@id="map"]/div[2]/div[2]/div[3]/div/a[1]'
    
    browser = Firefox()
    browser.get(YOUR_PAGE_URL)
    
    button = browser.find_element_by_xpath(NEXT_BUTTON_XPATH)
    button.click()
    
    NEXT_BUTTON_XPATH = '//*[@id="storage-ui-container"]/div/div/div[2]/input'
    
    button = browser.find_element_by_xpath(NEXT_BUTTON_XPATH)
    button.click()



    Savez-vous comment je pourrais faire ce petit script ?

    Merci,

    Corentin

    -
    Edité par copasquier 17 février 2016 à 15:09:32

    • Partager sur Facebook
    • Partager sur Twitter
      17 février 2016 à 16:55:00

      Si ça intéresse quelqu'un, j'ai finalement réussis à faire ce petit script : 

      #python:
      from selenium import webdriver
      from selenium.common.exceptions import TimeoutException
      from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0
      import time
      
      YOUR_PAGE_URL = 'https://umap.openstreetmap.fr/fr/map/new/#6/51.000/2.000'
      NEXT_BUTTON_XPATH = '//*[@id="map"]/div[2]/div[2]/div[3]/div/a[1]'
      
      driver = webdriver.Firefox()
      driver.maximize_window()
      driver.get(YOUR_PAGE_URL)
      
      button = driver.find_element_by_xpath(NEXT_BUTTON_XPATH)
      button.click()
      
      NEXT_BUTTON_XPATH = '//*[@id="storage-ui-container"]/div/div/div[2]/input'
      
      FILEPATH = "myFilePath"
      
      fileInput = driver.find_element_by_xpath(NEXT_BUTTON_XPATH)
      fileInput.send_keys(FILEPATH)
      
      NEXT_BUTTON_XPATH = '//*[@id="storage-ui-container"]/div/div/input[2]'
      
      button = driver.find_element_by_xpath(NEXT_BUTTON_XPATH)
      button.click()
      
      NEXT_BUTTON_XPATH = '//*[@id="storage-ui-container"]/ul/li'
      
      button = driver.find_element_by_xpath(NEXT_BUTTON_XPATH)
      button.click()

      voilà j'espère que ça pourra aider quelqu'un un jour. :)

      • Partager sur Facebook
      • Partager sur Twitter

      Automatisation navigation web

      × 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