DEV Community

Tom Moulard
Tom Moulard

Posted on • Originally published at blog.moulard.org on

ANSSI et automatisation de MOOC Secnumacademie avec Selenium

Pour mon école, j’ai eu a faire un MOOC de l’ANSSI.

Or après avoir fait tous les tests du mooc à 100% sans avoir écouté les cours, j’ai décidé de récupérer l’attestation de réussite du MOOC pour le donner à mon école. Mais j’ai eu un message d’erreur:

Erreur de récupération de l'attestation

J’ai donc voulu suivre les cours, mais ils prenaient beaucoup trop de temps à suivre. Voici donc un bot pour suivre les cours de manière semi-automatique:

from selenium import webdriver
import time

user = "REDACTED"
passw = "REDACTED"

def main():
    driver = webdriver.Chrome()
    driver.get("https://secnumacademie.gouv.fr/")
    driver.find_elements_by_id("btn_access_insc")[0].click()
    driver.find_elements_by_id("login")[0].send_keys(user)
    driver.find_elements_by_id("password")[0].send_keys(passw)
    xpath = '/html/body/div[2]/div/div[2]/div/div[1]/div[1]/div[2]/a[1]'
    driver.find_elements_by_xpath(xpath)[0].click()
    while True:
        if input("continue ? [Y/n]") == "n":
            exit(0)
        driver.switch_to.default_content()
        driver.switch_to.frame("DEFAUT")
        driver.switch_to.frame("contents")
        iframe_id = driver.find_elements_by_id("content")[0].find_elements_by_tag_name("iframe")[0].get_attribute("id")
        driver.switch_to.frame(iframe_id)
        driver.execute_script("for(var i = 0; i < 15; i++) {document.querySelector('#Stage_menu_inferieur_bouton_suivant_hit').click()}")

if __name__ == ' __main__':
    main()

Enter fullscreen mode Exit fullscreen mode

Un bot que vous pourrez trouver sur mon repository github.

Il suffit de:

  • mettre son username et son password dans les variables user et passwd.
  • lancer le bot
  • attendre que le bot ait connecté le navigateur
  • sélectionner le module, l’unité ainsi que le premier cours
  • entrer Y quand le bot demande si on veut continuer (étape à répéter tant qu’il y a un sous module à suivre)

En images

Récupérer le code

mkdir mook-hack && cd mook-hack
wget https://raw.githubusercontent.com/tomMoulard/python-projetcs/master/anssi-mooc/mooc.py

Enter fullscreen mode Exit fullscreen mode

Installer les dépendances

sudo apt install -y python3-selenium chromium-chromedriver

Enter fullscreen mode Exit fullscreen mode

Mettre son username/password

$EDITOR +4 mooc.py

Enter fullscreen mode Exit fullscreen mode

Lancer le bot

python3 mooc.py

Enter fullscreen mode Exit fullscreen mode

le bot qui attends

Sélectionner le module

Sélectionner le module

Sélectionner l’unité

Sélectionner l'unité

Sélectionner le premier cours

  • angry clicking noise * Sélectionner le premier cours

Entrer Y

y

Enter fullscreen mode Exit fullscreen mode

Upgrades

Dans le futur, on pourrait:

  • lire les vidéos
  • ne pas faire Y pour chaque cours

Conclusion

bla bla bla il faut suivre ses cours

Selenium c’est cool pour automatiser l’utilisation d’un site web

  • Se blog a été écrit en réalisant un mooc ANSSI *

Top comments (0)