[PYTHON] Tipps zur Verwendung von Selen und Headless Chrome in einer CUI-Umgebung

Verwenden Sie Selenium und Headless Chrome in einer CUI-Umgebung

Umgebung

wie benutzt man

Voraussetzung ist, dass Chrome bereits installiert ist.

Geben Sie Optionen für die Verwendung von Headless Chrome an

example.py


options = webdriver.ChromeOptions()
options.binary_location = '/usr/bin/google-chrome'
options.add_argument('--headless')
options.add_argument('--disable-gpu')
options.add_argument('--no-sandbox')
options.add_argument('--window-size=1200x600')

Starten Sie "Service", um schneller als normal zu starten

example.py


#Dienststart
service = Service(executable_path='/usr/local/bin/chromedriver')
service.start()
#Stellen Sie eine Verbindung zu Chrome her
driver = webdriver.Remote(service.service_url, desired_capabilities=options.to_capabilities())

Alles was Sie tun müssen, ist Slenium wie gewohnt auszuführen.

Wenn bei der Verwendung von Selenium-Methoden eine Fehlermeldung angezeigt wird

Der folgende Fehler kann in der CUI-Umgebung auftreten

error.log


selenium.common.exceptions.WebDriverException: Message: unknown error: an X display is required for keycode conversions, consider using Xvfb
  (Session info: headless chrome=59.0.3071.86)
  (Driver info: chromedriver=2.29.461571 (8a88bbe0775e2a23afda0ceaf2ef7ee74e822cc5),platform=Linux 4.8.0-49-generic x86_64)

Es passierte, als ich die Methode "sendKeys ()" ausführte. Dies kann vermieden werden, indem Zeichen usw. mit JavaScript anstelle von "sendKeys ()" eingegeben werden. Wenn Sie einen anderen Fehler erhalten, können Sie ihn wahrscheinlich vermeiden, indem Sie JavaScript ausführen.

Beispiel:

example.py


# driver.get_element_by_css_selector('hoge').sendKeys('fuga')Löst eine Ausnahme aus
def _set_value_for_element(selector: str, value: str):
        return 'document.querySelector("{selector}").setAttribute("value", "{value}")'.format(selector=selector, value=value)

driver.get(url)
# sendKeys()Ich erhalte eine Ausnahme, wenn ich JS ausführe
driver.execute_script(_set_value_for_element(user_name_selector, user_name))
driver.execute_script(_set_value_for_element(user_password_selector, user_password))
driver.find_element_by_css_selector(login_button_selector).click()

Recommended Posts

Tipps zur Verwendung von Selen und Headless Chrome in einer CUI-Umgebung
Tipps für eine gute Verwendung von Elastic Search
Ich habe Selen und kopfloses Chrom in AWS Lambda gegeben. (Hinweise unter Win10-Umgebung usw.)
Ich habe versucht, Selen mit Headless-Chrom zu verwenden
Screenshots des Webfischens mit Selen und Chrom.
Ich habe versucht, Headless Chrome von Selenium zu verwenden
Erstellen eines Markierungsblatts mit Python OpenCV (Tipps zum guten Lesen)
Selen + WebDriver (Chrome) + Python | Erstellen einer Umgebung zum Scraping
Tipps zur Verwendung von Realsense SR300 auf einem MacBook im Jahr 2020
Erstellen Sie mit Selenium einen Datenerfassungsbot in Python
Erstellen einer R- und Python Docker-Arbeitsumgebung
Selenium-Screenshot ist nützlich für Screenshots von Webseiten in Python3, Selenium und Google Chrome
Aufbau einer Trainingsumgebung für Penetrationstests mit Naumachia
[Selen] Öffnen Sie den Link in einem neuen Tab und verschieben Sie ihn [Python / Chrome-Treiber]
Eine Sammlung von Befehlszeilen, die virtuelle Umgebungen mit Anaconda verwenden
Konstruktionsnotiz für eine maschinelle Lernumgebung von Python
Probleme und Lösungen für die Verwendung der Remote-Debugging-Umgebung für Linux-Apps in Visual Studio 2017
Verwenden Sie Tensorflow in einer wurzellosen Umgebung
Erstellen Sie mit Python eine interaktive Umgebung für maschinelles Lernen
Erstellen Sie mit AirtestIDE eine Umgebung für die Testautomatisierung (Tipps)
Tipps zur Verwendung von Selen und Headless Chrome in einer CUI-Umgebung
Installieren Sie Tensorflow in einer anaconda + python3.5-Umgebung
Python3 TensorFlow für Mac-Umgebungskonstruktion
Errichtete eine Umgebung für Anaconda & Jupyter
Ich suche einen einheitlichen Weg, um auf Statusänderungen von Selenium für Python-Elemente zu warten
Erstellen Sie ein Persönlichkeitsdiagnosetool in einer Cloud-Umgebung mit Google Colaboratory und IBM Watson Personality Insights
Erstellen einer Python-Umgebung auf einem Mac bis zur Verwendung von Jupyter Lab
Tipps zum Codieren kurz und einfach in Python zu lesen
[Python + Selen] Tipps zum Scraping
Wettbewerb mit VS-Code Erstellen Sie eine Python-Umgebung für Profis unter Windows
Erstellen Sie eine Chainer-Umgebung mit CUDA und cuDNN auf einer p2-Instanz
Erstellen einer Docker-Arbeitsumgebung für R und Python 2: Japanische Unterstützung
Erstellen und testen Sie eine CI-Umgebung für mehrere Versionen von Python
Erstellen Sie in kürzester Zeit eine Selenium-Umgebung unter Amazon Linux 2
Wie wäre es mit Anaconda zum Erstellen einer maschinellen Lernumgebung mit Python?
Erstellen Sie mit dem Serverless Framework eine lokale Entwicklungsumgebung für Lambda + Python
Tipps zur Implementierung eines etwas schwierigen Modells oder Trainings mit Keras
Versuchen Sie es mit virtualenv, mit dem eine virtuelle Umgebung von Python erstellt werden kann
Erstellen und testen Sie mit Docker in wenigen Minuten eine OpenCV- und Python-Umgebung
[DynamoDB] [Docker] Erstellen Sie mit Docker-Compose eine Entwicklungsumgebung für DynamoDB und Django
Erstellen Sie eine Entwicklungsumgebung mit Jupyter und Flask mit Python in Docker (unterstützt sowohl VS Code als auch Code-Server).
Erstellen Sie mit Docker eine Go-Umgebung
Problemumgehung für den Headless-Modus-Fehler in Chrome
[TouchDesigner] Tipps für die Anweisung von Python
Tipps zum Ersetzen und Debuggen von Funktionen
So erstellen Sie mit YOLO in 3 Stunden ein Modell für die Objekterkennung
Eine Sammlung von Tipps zur Beschleunigung des Lernens und Denkens mit PyTorch
So kratzen Sie Seiten, denen in Selenium + Headless Chrome "Zugriff verweigert" wurde
Versuchen Sie es mit PHATE, einer Methode zur Reduzierung und Visualisierung biologischer Daten
Erstellen Sie schnell eine Python-Umgebung für Deep Learning / Data Science (Windows)
Ich habe Dash und Streamlit in der Docker-Umgebung anhand von B-League-Daten verglichen
Ich habe versucht, NVDashboard zu verwenden (für diejenigen, die GPU in einer Jupyter-Umgebung verwenden)
Ein nützlicher Hinweis, wenn Sie Python nach langer Zeit verwenden
Erstellen Sie einen leichtgewichtigen Server in Python und hören Sie sich die HTTP-Erweiterungen von Scratch 2 an