technique:python:selenium

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
technique:python:selenium [2021/07/15 21:51] francoisatechnique:python:selenium [2021/07/15 23:34] francoisa
Ligne 5: Ligne 5:
 Ressources : Ressources :
  
-  * https://ichi.pro/fr/une-procedure-pas-a-pas-detaillee-de-web-scraping-a-l-aide-de-python-et-selenium-21381292843933 +  * [[https://ichi.pro/fr/une-procedure-pas-a-pas-detaillee-de-web-scraping-a-l-aide-de-python-et-selenium-21381292843933|https://ichi.pro/fr/une-procedure-pas-a-pas-detaillee-de-web-scraping-a-l-aide-de-python-et-selenium-21381292843933]] 
-  * https://www.ionos.fr/digitalguide/sites-internet/developpement-web/tutoriel-selenium-webdriver/ +  * [[https://www.ionos.fr/digitalguide/sites-internet/developpement-web/tutoriel-selenium-webdriver/|https://www.ionos.fr/digitalguide/sites-internet/developpement-web/tutoriel-selenium-webdriver/]] 
-  * https://www.selenium.dev/documentation/fr/getting_started/+  * [[https://www.selenium.dev/documentation/fr/getting_started/|https://www.selenium.dev/documentation/fr/getting_started/]]
  
 Pré-recquis Pré-recquis
Ligne 33: Ligne 33:
 driver.get('http://www.google.com/'); driver.get('http://www.google.com/');
 time.sleep(5) # Let the user actually see something! time.sleep(5) # Let the user actually see something!
 +driver.quit()
 +
 +
 +</code>
 +
 +Autre exemple :
 +
 +<code python>
 +#!/usr/bin/env python3
 +
 +from selenium import webdriver
 +from selenium.webdriver.support.ui import WebDriverWait, Select
 +from selenium.webdriver.support import expected_conditions as EC
 +from selenium.webdriver.common.by import By
 +from selenium.common.exceptions import TimeoutException
 +import os, time
 +
 +download_dir = os.environ['HOME']
 +
 +def wait_for_id(driver, id):
 +    try:
 +        r = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.ID, id)))
 +    except TimeoutException:
 +        print("timed out !")
 +        exit
 +
 +    return r
 +
 +profile = webdriver.FirefoxProfile()
 +profile.set_preference('browser.download.folderList', 2)
 +profile.set_preference('browser.download.manager.showWhenStarting', False)
 +profile.set_preference('browser.download.dir', download_dir)
 +profile.set_preference('browser.helperApps.alwaysAsk.force', False)
 +profile.set_preference('browser.helperApps.neverAsk.openFile', 'text/csv')
 +profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'text/csv')
 +driver = webdriver.Firefox(profile)
 +driver.get("https://mon-url.com")
 +
 +driver.find_element_by_id("ctl00_mainContent_Login1_UserName").send_keys("monlogin")
 +driver.find_element_by_id("ctl00_mainContent_Login1_Password").send_keys("monmotdepasse")
 +driver.find_element_by_id("ctl00_mainContent_Login1_LoginButton").click()
 +home_page = wait_for_id(driver, "ctl00_ctl00_menubarPlaceHolder_ASPxMenu1")
 +
 +stats_link = home_page.find_element_by_css_selector("#ctl00_ctl00_menubarPlaceHolder_ASPxMenu1_DXI5_T a").click()
 +candidates_link = wait_for_id(driver, "ctl00_ctl00_mainContent_mainContent_WucCatalogueReporting1_TvMenut2")
 +driver.find_element_by_id("ctl00_ctl00_mainContent_mainContent_WucCatalogueReporting1_TvMenut2").click()
 +format_link = wait_for_id(driver, "ctl00_ctl00_mainContent_mainContent_WucCatalogueReporting1_RvMain_ctl01_ctl05_ctl00").click()
 +
 +format_selector = Select(driver.find_element_by_id("ctl00_ctl00_mainContent_mainContent_WucCatalogueReporting1_RvMain_ctl01_ctl05_ctl00"))
 +format_selector.select_by_value("CSV")
 +driver.find_element_by_id("ctl00_ctl00_mainContent_mainContent_WucCatalogueReporting1_RvMain_ctl01_ctl05_ctl01").click()
 +
 +before = dict([(f, None) for f in os.listdir(download_dir)])
 +while 1:
 +  time.sleep(10)
 +  after = dict([(f, None) for f in os.listdir(download_dir)])
 +  added = [f for f in after if not f in before]
 +  if "OfCandidat.csv" in added:
 +      break
 +  before = after
 +
 driver.quit() driver.quit()
  
  • technique/python/selenium.txt
  • Dernière modification : 2024/04/02 15:08
  • de 127.0.0.1