Méthode de test automatisée combinant Beautiful Soup et Selenium (Python)

1. 1. Aperçu

Nous intégrons parfois des balises pour collecter des données spécifiques dans le HTML des pages Web, et nous avons utilisé des tests automatisés pour tester si les balises intégrées étaient correctes.

Comment rechercher des données HTML à l'aide de Beautiful Soup

Cependant, s'il s'agit d'une page statique, je pourrais la tester en utilisant Beautifulsoup, mais je ne pouvais pas obtenir de données HTML pour un écran avec une sécurité renforcée, comme un écran compatible SSL.

Par conséquent, si vous ne pouvez pas obtenir les données HTML avec Beautiful soup, nous avons décidé d'utiliser Selenium pour passer à l'écran cible et obtenir la page HTML.

2. programme

Voici un programme qui acquiert des données HTML en utilisant Beautiful soup et Selenium.

test.py


import time
from selenium import webdriver
from bs4 import BeautifulSoup
import re

#De l'écran qui peut être transféré à l'écran qui n'a pas pu être acquis par Beautiful soupe
driver.get("test.html")
driver.find_element_by_css_selector("test").click()

#Si vous pouvez passer à l'écran cible
source = driver.page_source
soup = BeautifulSoup(source,'html.parser')
elems = soup.find_all("script",text=re.compile("test"))

#Passer à l'écran suivant
driver.find_element_by_css_selector("test").click()
…

Vous pouvez utiliser Beautiful Soup tel quel pour analyser les données HTML.

source = driver.page_source
soup = BeautifulSoup(source,'html.parser')

Il n'y a aucun problème si vous utilisez le ** ".page_source" ** de Selenium pour obtenir les données HTML.

3. 3. Résumé

Créez le programme ci-dessus pour chaque écran requis et vous avez terminé. De plus, dans le cas du programme ci-dessus, Chrome démarre lorsque vous le lancez, il peut donc être préférable de le démarrer avec Headless. (Je n'utilise pas très souvent Headless car Selenium s'arrête souvent avec une erreur ...)

Référence: J'ai essayé d'utiliser Headless Chrome de Selenium

Recommended Posts

Méthode de test automatisée combinant Beautiful Soup et Selenium (Python)
Ma belle soupe (Python)
J'ai essayé différentes choses avec Python: le grattage (Beautiful Soup + Selenium + PhantomJS) et l'analyse morphologique
Défiez Python3 et Selenium Webdriver
Essayez de gratter avec Python + Beautiful Soup
Grattage avec Python, Selenium et Chromedriver
[Python] Un mémorandum de belle soupe4
Sélénium et python pour ouvrir Google
[Python] Différence entre fonction et méthode
Paramètres lors de l'utilisation de requêtes Python 3 et de Beautiful Soup avec crostini sur Chromebook
Triez les visages d'anime en grattant les pages de personnages d'anime avec Beautiful Soup et Selenium
[Python3] Comprendre les bases de Beautiful Soup
Python + Selenium Résumé des méthodes d'opération fréquemment utilisées
[Python] Différence entre la méthode de classe et la méthode statique
[Python] Gratter une table avec Beautiful Soup
Pratiquer le web scraping avec Python et Selenium
Belle soupe
Essayez la touche d'un test basé sur les données avec Selenium Python Bindings et py.test
Grammaire de méthode instantanée pour Python et Ruby (étude)
J'ai essayé le web scraping en utilisant python et sélénium
Essayez d'exécuter Google Chrome avec Python et Selenium