[PYTHON] Conseils d'utilisation de Selenium et Headless Chrome dans un environnement CUI

Utilisez Selenium et Headless Chrome dans un environnement CUI

environnement

comment utiliser

Au préalable, Chrome est déjà installé.

Spécifiez les options pour utiliser Headless Chrome

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')

Démarrez Service pour démarrer plus rapidement que le démarrage normal

example.py


#Démarrage du service
service = Service(executable_path='/usr/local/bin/chromedriver')
service.start()
#Connectez-vous à Chrome
driver = webdriver.Remote(service.service_url, desired_capabilities=options.to_capabilities())

Il ne vous reste plus qu'à lancer Slenium comme d'habitude.

Si vous obtenez une erreur lors de l'utilisation des méthodes Selenium

L'erreur suivante peut se produire dans l'environnement CUI

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)

Cela s'est produit lorsque j'ai exécuté la méthode sendKeys (). Cela peut être évité en entrant des caractères, etc. avec JavaScript au lieu de sendKeys (). Si vous obtenez une autre erreur, vous pouvez probablement l'éviter en exécutant JavaScript.

Exemple:

example.py


# driver.get_element_by_css_selector('hoge').sendKeys('fuga')Déclenche une exception
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()J'obtiens une exception lorsque j'exécute JS
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

Conseils d'utilisation de Selenium et Headless Chrome dans un environnement CUI
Conseils pour utiliser Elastic Search de manière efficace
J'ai mis du sélénium et du chrome sans tête dans AWS lambda. (Notes sous environnement Win10, etc.)
J'ai essayé d'utiliser du sélénium avec du chrome sans tête
Captures d'écran de la pêche sur le Web avec du sélénium et Chrome.
J'ai essayé d'utiliser Headless Chrome de Selenium
Créer une lecture de feuille de notes avec Python OpenCV (Conseils pour bien lire)
Selenium + WebDriver (Chrome) + Python | Création d'un environnement pour le scraping
Conseils pour utiliser Realsense SR300 sur MacBook en 2020
Créer un bot de collecte de données en Python à l'aide de Selenium
Création d'un environnement de travail Docker R et Python
Selenium-Screenshot est utile pour les captures d'écran de pages Web dans Python3, Selenium et Google Chrome
Création d'un environnement de formation pour les tests de pénétration à l'aide de Naumachia
[Selenium] Ouvrez le lien dans un nouvel onglet et déplacez-le [Pilote Python / Chrome]
Une collection de lignes de commande qui utilisent des environnements virtuels avec Anaconda
Mémo de construction d'environnement d'apprentissage automatique par Python
Problèmes et solutions pour l'utilisation de l'environnement de débogage distant pour les applications Linux dans Visual Studio 2017
Utilisez tensorflow dans un environnement sans racine
Créez un environnement interactif pour l'apprentissage automatique avec Python
Créez un environnement pour l'automatisation des tests avec AirtestIDE (Astuces)
Conseils d'utilisation de Selenium et Headless Chrome dans un environnement CUI
installer tensorflow dans un environnement anaconda + python3.5
Construction de l'environnement Python3 TensorFlow pour Mac
Création d'un environnement pour Anaconda et Jupyter
Recherche d'un moyen unifié d'attendre et d'obtenir les changements d'état de Selenium pour les éléments Python
Créez un outil de diagnostic de personnalité dans un environnement cloud à l'aide de Google Colaboratory et d'IBM Watson Personality Insights
Construire un environnement Python sur un Mac, jusqu'au point d'utiliser Jupyter Lab
Conseils pour coder courts et faciles à lire en Python
[Python + Selenium] Conseils pour le grattage
Concurrence avec VS Code Créez un environnement Python pour les professionnels sous Windows
Créer un environnement Chainer à l'aide de CUDA et cuDNN sur une instance p2
Création de l'environnement de travail Docker R et Python 2: prise en charge du japonais
Créer et tester un environnement CI pour plusieurs versions de Python
Créez un environnement Selenium sur Amazon Linux 2 dans les plus brefs délais
Que diriez-vous d'Anaconda pour créer un environnement d'apprentissage automatique avec Python?
Créer un environnement de développement local pour Lambda + Python à l'aide de Serverless Framework
Conseils pour mettre en œuvre un modèle ou un entraînement légèrement difficile avec Keras
Essayez d'utiliser virtualenv qui peut créer un environnement virtuel de Python
Créez et essayez un environnement OpenCV et Python en quelques minutes à l'aide de Docker
[DynamoDB] [Docker] Créer un environnement de développement pour DynamoDB et Django avec docker-compose
Créer un environnement de développement à l'aide de Jupyter et Flask avec Python dans Docker (prend en charge à la fois VS Code / code-server)
Créer un environnement go à l'aide de Docker
Solution de contournement pour l'erreur de mode sans tête de Chrome
[TouchDesigner] Conseils pour la déclaration par python
Conseils pour remplacer et déboguer les fonctions
Comment faire un modèle pour la détection d'objets avec YOLO en 3 heures
Une collection de conseils pour accélérer l'apprentissage et le raisonnement avec PyTorch
Comment supprimer des pages dont l'accès est refusé dans Selenium + Headless Chrome
Essayez d'utiliser PHATE, une méthode de réduction et de visualisation des données biologiques
Créez rapidement un environnement python pour le Deep Learning / Data Science (Windows)
J'ai comparé l'utilisation de Dash et Streamlit dans l'environnement Docker en utilisant les données de la ligue B
J'ai essayé d'utiliser NVDashboard (pour ceux qui utilisent le GPU dans l'environnement jupyter)
Une note utile lors de l'utilisation de Python après une longue période
Construisez un serveur léger en Python et écoutez les extensions HTTP de Scratch 2