[PYTHON] Connectez-vous à l'écran de gestion fortigate (6.0) à partir de sélénium-essayez de vous déconnecter

Chose que tu veux faire

・ Je souhaite utiliser l'écran de gestion des périphériques réseau avec le Webdriver. -Fortigate a une interface RESTFUL, mais je ne l'envisagerai pas cette fois.

De quoi es-tu heureux

-Il peut être possible de surveiller une défaillance particulière qui rend impossible la connexion à l'écran de gestion fortigate.

Que préparer

・ Fortigate (Fortigate-60D 6.0.x cette fois) ・ Ubuntu 20.04 ・ Environnement dans lequel le sélénium + firefox fonctionne (https://qiita.com/gaichi/items/1ece50111b50f8de6453)

Recherche préliminaire (méthode de recherche par élément)

-Installez le plugin sélénium IDE dans Firefox et voyez les résultats enregistrés par enregistrement. -Recherche à partir de la source HTML. Bien qu'il s'agisse d'un enregistrement, l'opération peut ne pas être bien captée et des résultats différents peuvent être obtenus même avec la même opération. Je comprends en quelque sorte le HTML, mais je ne comprends pas du tout le CSS, alors je l'ai recherché de manière assez appropriée.

La source

#!/bin/python3

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
import time

USERNAME='admin'
PASSWORD='password'
LOGINURL='https://192.168.1.99/login'

#Lancer le navigateur
options = Options()
options.binary_location = '/usr/bin/firefox'
#options.add_argument('-headless')
driver = webdriver.Firefox(options=options)

#Obtenez l'écran de connexion Fortigate
driver.get(LOGINURL)

# ID,Entrer le mot de passe
time.sleep(1)
driver.find_element_by_id('username').send_keys(USERNAME)
time.sleep(1)

driver.find_element_by_id('secretkey').send_keys(PASSWORD)
time.sleep(1)

driver.find_element_by_name('login_button').click()
time.sleep(5)
#↑ L'affichage de l'écran de gestion prend du temps, alors attendez longtemps.

#Cliquez sur le menu Admin
driver.find_element_by_class_name('admin-avatar').click();
time.sleep(2)

#Cliquez sur Déconnexion
driver.find_element_by_class_name('fa-sign-out').click();
time.sleep(10)

#Quittez le navigateur
driver.quit()

Recommended Posts

Connectez-vous à l'écran de gestion fortigate (6.0) à partir de sélénium-essayez de vous déconnecter
Comment se connecter automatiquement comme 1Password depuis CLI
DJango Memo: depuis le début (plus de modifications sur l'écran de gestion)
Connectez-vous à un serveur distant avec SSH
Connectez-vous avec json en utilisant pygogo.
Envoyer les données du journal du serveur vers Splunk Cloud
Je n'arrive pas à me connecter à la page d'administration avec Django 3
Comment prendre une capture d'écran de l'écran Chrome (l'empêcher de se couper au milieu)
Acquérir automatiquement le journal des opérations dans le terminal lors de la connexion à Linux
Mémo DJango: Depuis le début (en utilisant l'écran de gestion) mon point addictif
J'ai essayé de couper une image fixe de la vidéo
Changer la version active dans Pyenv d'Anaconda en Python ordinaire
Programmation pour combattre dans le monde ~ 5-1
Programmation pour combattre dans le monde ~ 5-5,5-6
Programmer pour combattre dans le monde 5-3
Programmation pour combattre dans le monde - Chapitre 4
Dans la commande python, python pointe vers python3.8
Essayez Cython dans les plus brefs délais
Comment se connecter à Docker + NGINX
Programmation pour combattre dans le monde ~ 5-2
[Version terminée] Essayez de connaître le nombre d'habitants de la ville à partir de la liste d'adresses avec Python
Lancer GQL avec un identifiant numérique depuis l'écran de gestion AppEngine
Comment vérifier le GAE local à partir du navigateur iPhone dans le même LAN
Mémo DJango: Depuis le début (édition de l'écran de gestion) Il y a un mystère
Pour la première fois dans Numpy, je vais le mettre à jour de temps en temps
Implémenté dans Dataflow pour copier la structure hiérarchique de Google Drive vers Google Cloud Storage
Est-il possible d'extraire les informations de profil de la personne du journal de discussion?
J'ai essayé de prédire le nombre de personnes infectées par le virus corona en tenant compte de l'effet de s'abstenir de sortir
Connectez-vous à Slack à l'aide de requêtes en Python
Dans Jupyter, ajoutez IPerl au noyau.
Comment faire fonctionner Linux depuis la console
Divers commentaires à écrire dans le programme
Technologie de gestion des mots de passe à l'ère GitHub
Comment accéder à la banque de données de l'extérieur
Convertir de Markdown en HTML en Python
Utilisez dHash pour localiser sur le parcours à partir d'une scène dans un jeu de course
Utilisez PIL en Python pour extraire uniquement les données souhaitées d'Exif
La première étape de l'analyse du journal (comment formater et mettre les données du journal dans Pandas)