[PYTHON] Zeigen Sie einen Bildschirm an, für den Sie sich bei Digital Signage anmelden müssen

Was du machen willst

Ich möchte den Bildschirm eines externen Dienstes anzeigen, für den eine Anmeldung erforderlich ist, sowie die Beschilderung, mit der die Bilddatei als Diashow angezeigt wird. Es ist ein wenig schwer zu verstehen, aber es sieht wie folgt aus.

Was zu verwenden

Gesamtdurchfluss

  1. Starten Sie Chrome mit Selenium
  2. Greifen Sie auf einen externen Dienst zu und melden Sie sich automatisch an (mit Selenium).
  3. Gehen Sie zu dem Bildschirm, den Sie anzeigen möchten, und erfassen Sie das Bild (mit Selen).
  4. Speichern Sie das Bild in einem Ordner zum Veröffentlichen von Beschilderungen (mit Selen).
  5. Führen Sie den obigen Ablauf regelmäßig mit dem Taskplaner aus

Quellcode

Es wäre hilfreich, wenn Sie den Dateinamen lesen, das Ziel, die Anmeldeinformationen usw. entsprechend speichern könnten.

import os
import sys
import time
import datetime
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import chromedriver_binary

# File Name
now = datetime.datetime.now()
filename = "image/screen_" + now.strftime('%Y%m%d_%H%M%S') + ".png "
FILENAME = os.path.join(os.path.dirname(os.path.abspath(__file__)), filename)

# set driver and url
options = Options()
options.add_argument('--headless')
driver = webdriver.Chrome(options=options)
url = 'https://xxxx/xxxx/'
driver.get(url)

# ID/Geben Sie PASS ein (Anpassung für jeden Standort erforderlich)
id = driver.find_element_by_name("xxxx-xxxx")
id.send_keys("xxxx")
password = driver.find_element_by_name("xxxx-xxxx")
password.send_keys("xxxx")
time.sleep(1)

#Klicken Sie auf die Anmeldeschaltfläche (dies erfordert eine Anpassung für jede Site).
login_button = driver.find_element_by_name("xxxx")
login_button.click()

# get width and height of the page
w = driver.execute_script("return document.body.scrollWidth;")
h = driver.execute_script("return document.body.scrollHeight;")

# set window size
driver.set_window_size(1920,1080)
time.sleep(1)

# Get Screen Shot
print ("Get Screen Shot")
driver.save_screenshot(FILENAME)

# Close Web Browser
driver.quit()

Zusammenfassung

Vorläufig konnte ich mit dem oben genannten Ablauf das tun, was ich wollte. Danach mache ich es derzeit in einer lokalen Umgebung, daher möchte ich dies in eine Serverumgebung verschieben. Jetzt, da ich den allgemeinen Ablauf verstehe, habe ich das Gefühl, dass ich ihn verwalten kann, indem ich den Rest untersuche.

Eine kleine Notiz

In meiner Umgebung habe ich den Signage Publishing-Ordner dem Netzwerklaufwerk zugewiesen. Als ich Python jedoch direkt mit dem Taskplaner startete, funktionierte der Zugriff auf das Netzwerklaufwerk nicht, sodass ich eine separate Batchdatei erstellte. Ich habe dem Batch ein Netzwerklaufwerk zugewiesen und dann Python gestartet und es hat funktioniert. Derzeit ist der Mechanismus so, dass Batch-Dateien regelmäßig ausgeführt werden.

Recommended Posts

Zeigen Sie einen Bildschirm an, für den Sie sich bei Digital Signage anmelden müssen
Erstellen Sie einen Django-Anmeldebildschirm
Erstellen eines Anmeldebildschirms in Django all auth
Ich habe ein Skript erstellt, um Piktogramme anzuzeigen
Erstellen einer Software, die den Android-Bildschirm auf eine PC 2 Real-Time Touch Edition spiegelt
Eine Geschichte über die Implementierung eines Anmeldebildschirms mit Django
[Bachstelze] Fügen Sie dem Bachstelzenprojekt eine Anmeldeseite hinzu
Fordern Sie auf, jedem Login einen anderen Namen zu geben