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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
set laDate to current date
set an to year of laDate
set URLImpots to "https://cfspart.impots.gouv.fr"
set nomPage0 to "sans titre 2" -- "https://cfspart.impots.gouv.fr"
set nomPage1 to "Particuliers | authentification"
set nomPage2 to "Mon espace particulier"
set nomPage3 to "accueil"
set nomPage4 to "Mes documents"
set nomPage5 to "Avis d'imposition - Taxes foncières - " & an
-- ouvre la page 0, puis la page 1
tell application "Safari"
activate
make new document
set URL of document 1 to URLImpots
end tell
log "ouverture de la page 1"
--attentePage(nomPage0) -- L'attente de chargement de la page 0,
-- qui ne fonctionne pas chez moi.
delay 5
attentePage(nomPage1) -- attente de chargement de la page 1
log "page de connexion"
-- Dans la page1, click sur le bouton "Connexion"
tell application "Safari" to tell document 1 to do JavaScript "document.getElementsByClassName('btn btn-primary')[1].click()"
log "connexion faite"
attentePage(nomPage2) -- attente de chargement de la page 2
-- dans la page 2, click sur le bouton "consulter ma situation fiscale" qui est le 8ème élément de class 'openWindow' (de 0 à 7)
tell application "Safari" to tell document 1 to do JavaScript "document.getElementsByClassName('openWindow')[7].click()"
log "ouverture de la page situation fiscale"
attentePage(nomPage3) -- attente de chargement de la page 3
-- La page demandée s'ouvre dans une fenêtre séparée !!
-- Dans la page 3, clic sur le bouton "Mes documents"
tell application "Safari" to tell document 1 to do JavaScript "document.getElementsByClassName('cssLienBarreNav')[4].click()"
log "ouverture de la page mes documents faite"
attentePage(nomPage4) -- attente de chargement de la page 4
--Dans la page 4, extrait du document "avis primitif" de la Taxe foncière
tell application "Safari"
tell document 1
-- compte le nombre d'impôts
set nbImpots to (do JavaScript "document.getElementsByClassName('cssFondTextePair').length") as integer
set NoItem to -1
-- recherche de la ligne contenant le mot "foncière"
repeat with I from 1 to nbImpots
set TValeur to (do JavaScript "document.getElementsByClassName('cssFondtextePair')[" & I & "].innerText") as string
if TValeur contains "foncière" then set NoItem to I
end repeat
log "No ligne impôt foncier = " & NoItem
-- prend l'élément parent de la taxe foncière et recherche le bouton du document (on suppose un seul document = avis primitif !)
do JavaScript "document.getElementsByClassName('cssFondTextePair')[" & NoItem & "].parentNode.getElementsByClassName('cssLienTable')[0].click()"
log "click pour ouvrir l'avis effectué"
end tell
end tell
attentePage(nomPage5) -- attente de chargement de la page 5 dans une nouvele fenêtre
log "page PDF ouverte"
-- Dans la page 5, enregistrer le document PDF
tell application "Safari" to tell document 1 to do JavaScript "document.getElementsByClassName('cssBouton')[1].click()"
log "Téléchargement et fin du script"
-- fin du script
-- S'assurer que les pages 1, 2, 3, 4, 5 s'ouvrent entièrement
on attentePage(nomPage) -- attente de la fin de chargement de la page 3
tell application "Safari"
repeat until ((name of document 1) contains nomPage) and ((do JavaScript "document.readyState" in document 1) is "complete")
end repeat
end tell
end attentePage |
Partager