[PYTHON] Melden Sie sich von Selenium aus beim Fortigate (6.0) -Verwaltungsbildschirm an, um sich abzumelden

Was du machen willst

・ Ich möchte den Verwaltungsbildschirm von Netzwerkgeräten mit einem Webdriver bedienen. -Fortigate hat eine RESTFUL-Schnittstelle, aber ich werde es diesmal nicht berücksichtigen.

Worüber freust du dich?

-Es kann möglich sein, einen besonderen Fehler zu überwachen, der es unmöglich macht, sich beim Fortigate-Verwaltungsbildschirm anzumelden.

Was vorzubereiten?

・ Fortigate (diesmal Fortigate-60D 6.0.x) ・ Ubuntu 20.04 ・ Umgebung, in der Selen + Firefox wirkt (https://qiita.com/gaichi/items/1ece50111b50f8de6453)

Voruntersuchungen (Elementforschungsmethode)

-Installieren Sie das Selen-IDE-Plugin in Firefox und sehen Sie sich die aufgezeichneten Ergebnisse an. -Suchen Sie aus der HTML-Quelle. Obwohl es sich um eine Aufzeichnung handelt, kann die Operation möglicherweise nicht gut aufgenommen werden, und es können sogar mit derselben Operation unterschiedliche Ergebnisse erzielt werden. Ich verstehe HTML irgendwie, aber ich verstehe CSS überhaupt nicht, also habe ich ganz angemessen danach gesucht.

Quelle

#!/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'

#Starten Sie den Browser
options = Options()
options.binary_location = '/usr/bin/firefox'
#options.add_argument('-headless')
driver = webdriver.Firefox(options=options)

#Holen Sie sich den Fortigate-Anmeldebildschirm
driver.get(LOGINURL)

# ID,Passwort eingeben
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)
#↑ Die Anzeige des Verwaltungsbildschirms dauert einige Zeit. Warten Sie daher lange.

#Klicken Sie auf das Admin-Menü
driver.find_element_by_class_name('admin-avatar').click();
time.sleep(2)

#Klicken Sie auf Abmelden
driver.find_element_by_class_name('fa-sign-out').click();
time.sleep(10)

#Beenden Sie den Browser
driver.quit()

Recommended Posts

Melden Sie sich von Selenium aus beim Fortigate (6.0) -Verwaltungsbildschirm an, um sich abzumelden
So melden Sie sich automatisch wie 1Password von der CLI an
DJango Memo: Von Anfang an (weitere Änderungen am Verwaltungsbildschirm)
Melden Sie sich mit SSH bei einem Remote-Server an
Loggen Sie sich mit json mit pygogo ein.
Senden Sie Protokolldaten vom Server an Splunk Cloud
Ich kann mich mit Django 3 nicht auf der Admin-Seite anmelden
So machen Sie einen Screenshot des Chrome-Bildschirms (verhindern Sie, dass er in der Mitte abgeschnitten wird)
Erfassen Sie das Betriebsprotokoll automatisch im Terminal, wenn Sie sich bei Linux anmelden
DJango-Memo: Von Anfang an (über den Verwaltungsbildschirm) mein Suchtpunkt
Ich habe versucht, ein Standbild aus dem Video auszuschneiden
Ändern Sie die aktive Version in Pyenv von Anaconda in einfaches Python
Programmieren, um in der Welt zu kämpfen ~ 5-1
Programmierung, um in der Welt zu kämpfen ~ 5-5,5-6
Programmieren, um in der Welt zu kämpfen 5-3
Programmierung für den Kampf in der Welt - Kapitel 4
Im Python-Befehl zeigt Python auf Python3.8
Probieren Sie Cython in kürzester Zeit aus
So melden Sie sich bei Docker + NGINX an
Programmieren, um in der Welt zu kämpfen ~ 5-2
[Abgeschlossene Version] Versuchen Sie, die Anzahl der Einwohner der Stadt anhand der Adressliste mit Python herauszufinden
Wirf GQL mit einer numerischen ID aus dem AppEngine-Verwaltungsbildschirm
So überprüfen Sie die lokale GAE über den iPhone-Browser im selben LAN
DJango-Memo: Von Anfang an (Bearbeiten des Verwaltungsbildschirms) Es gibt ein Rätsel
Zum ersten Mal in Numpy werde ich es von Zeit zu Zeit aktualisieren
In Dataflow implementiert, um die hierarchische Struktur von Google Drive in Google Cloud Storage zu kopieren
Ist es möglich, die Profilinformationen der Person aus dem Chat-Protokoll zu extrahieren?
Ich habe versucht, die Anzahl der mit dem Coronavirus infizierten Personen unter Berücksichtigung der Auswirkung des Verzichts auf das Ausgehen vorherzusagen
Melden Sie sich mit Anforderungen in Python bei Slack an
Fügen Sie in Jupyter IPerl zum Kernel hinzu.
So bedienen Sie Linux von der Konsole aus
Verschiedene Kommentare im Programm zu schreiben
Technologie zur Verwaltung von Passwörtern in der GitHub-Ära
So greifen Sie von außen auf den Datenspeicher zu
In Python von Markdown in HTML konvertieren
Verwenden Sie dHash, um eine Szene in einem Rennspiel auf der Strecke zu lokalisieren
Verwenden Sie PIL in Python, um nur die gewünschten Daten aus Exif zu extrahieren
Der erste Schritt zur Protokollanalyse (Formatieren und Einfügen von Protokolldaten in Pandas)