Pour contrôler le navigateur Web Mozilla Firefox de Selenium, vous devez utiliser le pilote Web Gecko.
Dans cet article, je vais vous montrer comment configurer le sélénium pour exécuter des tests de navigateur, une automatisation Web, des tâches de grattage Web à l'aide du navigateur Web Mozilla Firefox. Alors, commençons.
Conditions préalables:
Pour essayer les commandes et les exemples de cet article, vous devez avoir,
1) Une distribution Linux (de préférence Ubuntu) installée sur votre ordinateur.
2) Python 3 installé sur votre ordinateur.
3) PIP 3 installé sur votre ordinateur.
4) Mozilla Firefox installé sur votre ordinateur.
Vous pouvez trouver de nombreux articles sur ces sujets sur Linuxhint.com. Assurez-vous de les vérifier si vous avez besoin d'aide.
Préparation d'un environnement virtuel Python 3 pour le projet:
L'environnement virtuel Python est utilisé pour créer un répertoire de projet Python isolé. Les modules Python que vous installez à l'aide de PIP seront installés dans le répertoire du projet uniquement, pas à l'échelle mondiale.
Python virtualv Le module est utilisé pour gérer les environnements virtuels Python.
Vous pouvez installer python virtualv Module mondial à l'aide de PIP 3 comme suit:
$ sudo pip3 installer VirtualEnvPython virtualv devrait être installé.
Créer un répertoire de projet sélénium-firefox / dans votre répertoire de travail actuel comme suit:
$ mkdir -pv sélénium-firefox / pilotesAccédez à votre répertoire de projet nouvellement créé sélénium-firefox / comme suit:
$ CD Selenium-Firefox /Créez un environnement virtuel Python dans votre répertoire de projet avec la commande suivante:
$ virtualenv .venvL'environnement virtuel Python doit être créé dans votre répertoire de projet.
Activez l'environnement virtuel Python de votre répertoire de projet avec la commande suivante:
$ source .env / bin / activerInstallation de la bibliothèque de Selenium Python:
La bibliothèque de sélénium est disponible dans le référentiel officiel Python PYPI.
Vous pouvez installer la bibliothèque Selenium Python à l'aide de PIP 3 comme suit:
$ pip3 installer le séléniumLa bibliothèque Selenium Python doit être installée.
Installation de Firefox Gecko Driver:
Pour télécharger le Firefox Gecko Driver, visitez la page GitHub Releases de Mozilla / Geckodriver à partir de votre navigateur Web préféré.
Comme vous pouvez le voir, V0.26.0 est la dernière version de Firefox Gecko Driver au moment de la rédaction de cet article.
Pour télécharger le pilote Firefox Gecko, faites défiler un peu et cliquez sur le Tar Linux Geckodriver.GZ Archive en fonction de votre architecture de système d'exploitation.
Si vous utilisez un système d'exploitation 32 bits, cliquez sur le geckodriver-v0.26.0-LINUX32.le goudron.gz lien.
Si vous utilisez un système d'exploitation 64 bits, cliquez sur le geckodriver-v0.26.0-Linuxx64.le goudron.gz lien.
Je téléchargerai la version 64 bits du pilote Firefox Gecko.
Votre navigateur devrait vous inviter à enregistrer les archives. Sélectionner Enregistrer le fichier et cliquez sur D'ACCORD.
Le pilote Firefox Gecko doit être téléchargé.
Les archives du pilote Firefox Gecko doivent être téléchargées dans le ~ / Téléchargements annuaire.
Vous pouvez extraire le geckodriver-v0.26.0-LINUX64.le goudron.gz Archive du ~ / Téléchargements répertoire au Conducteurs/ Répertoire de votre projet avec la commande suivante:
$ tar -xzf ~ / téléchargements / geckodriver-v0.26.0-LINUX64.le goudron.Pilotes GZ -C /Une fois l'archive de pilote Firefox Gecko extrait, un nouveau fichier binaire geckodriver devrait être créé dans le Conducteurs/ Répertoire de votre projet, comme vous pouvez le voir dans la capture d'écran ci-dessous.
Partant avec Selenium en utilisant Firefox Gecko Driver:
Dans cette section, je vais vous montrer comment configurer votre tout premier script Selenium Python pour tester si le pilote Firefox Gecko fonctionne.
Tout d'abord, créez un nouveau script python ex00.py dans votre répertoire de projet et saisissez les lignes suivantes.
à partir de Selenium Import WebDriverUne fois que vous avez terminé, enregistrez ex00.py Script python.
Les lignes 1 et 2 importent tous les composants requis à partir du sélénium Bibliothèque python.
La ligne 4 crée un objet de pilote Web Firefox à l'aide du webdriver.Firefox () Méthode et le stocke dans un navigateur variable. Le exécutable_path L'argument est utilisé pour indiquer au pilote Web où chercher le binaire Firefox Gecko Binary. Dans ce cas, le geckodriver binaire du Conducteurs/ Annuaire du projet.
Sur la ligne 6, navigateur.obtenir() Méthode Charge Up Up linuxhint.com dans un navigateur Web Firefox.
Une fois le site Web terminé le chargement, la ligne 7 imprime le titre du site Web, ici, navigateur.titre la propriété est utilisée pour accéder au titre du site Web.
Ligne 8 ferme le navigateur Web Firefox à l'aide du navigateur.arrêter() méthode.
Vous pouvez exécuter le script Python ex00.py avec la commande suivante:
$ python3 ex00.pySelenium devrait ouvrir un navigateur Web Firefox et visiter le Linuxhint.COM Site Web Autochalement.
Une fois que la page se charge, elle devrait imprimer le titre du site Web sur la console et le navigateur Web devrait se fermer automatiquement.
Ainsi, Selenium travaille correctement avec le conducteur de Firefox Gecko.
Exemple 01: Exécution de Firefox en mode sans tête en utilisant le sélénium
Vous pouvez également exécuter le sélénium avec Firefox Gecko Driver en mode sans tête. Selenium Firefox Headless Mode ne nécessite aucune interface utilisateur graphique installée sur votre ordinateur. Ainsi, vous pourrez exécuter Selenium Firefox dans tous les serveurs sans tête Linux.
Tout d'abord, créez un nouveau script python ex01.py dans votre répertoire de projet et saisissez les lignes de codes suivantes.
à partir de Selenium Import WebDriverUne fois que vous avez terminé, enregistrez le ex01.py Script python.
La ligne 1 et la ligne 3 sont les mêmes que les lignes 1 et la ligne 2 de ex00.py Script python.
Ligne 2 importe Firefox Options du sélénium bibliothèque.
La ligne 5 crée un objet d'options Firefox et le stocke dans le Firefoxoptions variable.
La ligne 6 utilise le Firefoxoptions.add_argument () Méthode pour ajouter le -sans tête Firefox Command Line Flag au Firefoxoptions objet.
En ligne 8, options L'argument est utilisé pour passer le Firefoxoptions Tout en initialisant le pilote Web Firefox à l'aide du webdriver.Firefox () méthode.
Le reste des lignes du ex01.py Le script est le même que le ex00.py.
Vous pouvez exécuter le script Python ex01.py avec la commande suivante:
$ python3 ex01.pyComme vous pouvez le voir, le titre du site Web (Linuxhint.com) est imprimé sur la console sans ouvrir aucune version graphique du navigateur Web Firefox.
Comme vous pouvez le voir, Selenium travaille également sur un environnement Ubuntu sans tête où je n'ai pas d'interface utilisateur graphique installée.
Maintenant que vous savez comment passer le -sans tête Firefox Command Line Flag / Option Utilisation du pilote Selenium Firefox Gecko, vous pouvez également transmettre tout autre drapeau / options de ligne de commande Firefox.
Vous pouvez trouver tous les indicateurs / options de ligne de commande Firefox pris en charge dans les options de ligne de commande - Mozilla | Page MDN.
Exemple 02: Extraction de Lorem ipsum à l'aide de sélénium
Dans cette section, je vais vous montrer comment faire un coup de base de base en utilisant le pilote Selenium Firefox Gecko.
Tout d'abord, visitez la page Lorem Ipsum Generator du navigateur Web Firefox. Comme vous pouvez le voir, la page a généré 5 paragraphes aléatoires. Extraitons tout le texte généré (les 5 paragraphes) de cette page.
Avant de commencer à extraire des informations à partir d'une page Web, vous devez connaître la structure HTML du contenu de la page Web.
Vous pouvez facilement trouver la structure HTML du contenu que vous souhaitez extraire en utilisant le Outil de développeur Firefox. Ouvrir Outil de développeur Firefox, Appuyez sur le bouton de souris droit (RMB) sur la page et cliquez sur Inspecter l'élément (Q).
Outil de développeur Firefox devrait être ouvert. Clique sur le Inspecter l'icône () comme marqué dans la capture d'écran ci-dessous.
Survolez le premier paragraphe, comme indiqué dans la capture d'écran ci-dessous. Ensuite, appuyez sur le bouton gauche de la souris (LMB) pour le sélectionner.
La structure HTML des paragraphes doit être affichée dans le Inspecter Onglet du Outil de développeur Firefox. Comme vous pouvez le voir, les paragraphes Lorem Ipsum générés se trouvent à l'intérieur d'un div Tag qui a le identifiant lèvres.
Pour extraire les paragraphes Lorem Ipsum à l'aide du pilote Selenium Firefox Gecko, créez un nouveau script Python ex02.py dans votre répertoire de projet et saisissez les lignes de codes suivantes.
à partir de Selenium Import WebDriverUne fois que vous avez terminé, enregistrez le ex02.py Script python.
La ligne 10 charge la page du générateur Lorem Ipsum à l'aide du navigateur.obtenir() méthode.
Les contenus lorem ipsum sont à l'intérieur d'un div Tag avec l'ID lèvres. La ligne 12 utilise le navigateur.find_element_by_id () Méthode pour la sélectionner dans la page Web et la stocker dans le lèvres variable.
Ligne 13 imprime le contenu Lorem ipsum généré sur la console. Ici le texte la propriété est utilisée pour accéder au contenu du div élément avec l'ID lèvres.
Maintenant, exécutez le script Python ex02.py comme suit:
$ Python3 Ex02.pyComme vous pouvez le voir, Selenium a extrait correctement le contenu Lorem Ipsum de la page Web.
Exécuter le script Python ex02.py Encore une fois, vous donnera une sortie différente, comme vous pouvez le voir dans la capture d'écran ci-dessous.
Exemple 03: Extraction de données sur la liste à l'aide du sélénium
Dans cette section, je vais vous montrer un exemple de la liste des listes de remise en fonction des données d'un site Web utilisant le pilote Selenium Firefox Gecko en mode sans tête.
Tout d'abord, visitez le générateur de noms aléatoires.Informations du navigateur Web Firefox. Ce site Web générera 10 noms aléatoires chaque fois que vous rechargez la page, comme vous pouvez le voir dans la capture d'écran ci-dessous. Notre objectif est d'extraire ces noms aléatoires en utilisant le sélénium en mode sans tête.
Pour découvrir la structure HTML de la liste, vous devez ouvrir le Outil de développeur Firefox. Pour ce faire, appuyez sur le bouton droit de la souris (RMB) sur la page et cliquez sur Inspecter l'élément (Q).
Outil de développeur Firefox devrait être ouvert. Clique sur le Inspecter l'icône () comme marqué dans la capture d'écran ci-dessous.
Ensuite, survolez la liste de Noms aléatoires. La liste doit être mise en évidence comme marqué dans la capture d'écran ci-dessous. Ensuite, appuyez sur le bouton gauche de la souris (LMB) pour sélectionner la liste.
Le code HTML de la liste doit être mis en évidence dans le Inspecteur Onglet du Outil de développeur Firefox. Ici, la liste des noms aléatoires est à l'intérieur d'un div élément. Le div élément a le classe nom résultats. À l'intérieur, nous avons un ol élément avec le classe nom liste de nom. À l'intérieur de ol élément, chacun des noms est dans un li élément.
De cela, nous pouvons dire que pour arriver au li Tags, nous devons suivre div.Résultats> OL.Namelist> li
Ainsi, notre sélecteur CSS sera div.Résultats ol.Namelist Li (Remplacez simplement le > Signes avec un espace)
Pour extraire ces noms aléatoires, créez un nouveau script Python ex03.py et saisissez les lignes de codes suivantes.
à partir de Selenium Import WebDriverUne fois que vous avez terminé, enregistrez le ex03.py Script python.
La ligne 10 charge le site Web du générateur de noms aléatoires à l'aide du navigateur.obtenir() méthode.
La ligne 11 sélectionne la liste des noms à l'aide du navigateur.find_elements_by_css_selector () méthode. Cette méthode utilise le sélecteur CSS div.Résultats ol.Namelist Li Pour trouver la liste des noms. Ensuite, la liste des noms est stockée dans le liste de nom variable.
Aux lignes 13 et 14, un pour la boucle est utilisée pour itérer à travers le liste de nom liste de li éléments. Dans chaque itération, le contenu du li L'élément est imprimé sur la console.
Maintenant, exécutez le script Python ex03.py comme suit:
$ python3 ex03.pyComme vous pouvez le voir, le script Python ex03.py a récupéré tous les noms aléatoires de la page Web.
Si vous exécutez le script une deuxième fois, il devrait renvoyer une nouvelle liste de noms aléatoires, comme vous pouvez le voir dans la capture d'écran ci-dessous.
Conclusion:
Cet article devrait vous aider à démarrer avec Selenium en utilisant le navigateur Web Firefox. Vous devriez être en mesure de configurer un projet de pilote Selenium Firefox Gecko assez facilement et d'exécuter vos tests de navigateur, l'automatisation Web et les tâches de grattage Web.