[PYTHON] Impossible de manipuler l'iframe dans la page avec Selenium

problème

J'ai essayé d'obtenir le contenu de l'iframe dans la page en utilisant Selenium / BeautifulSoup, mais je ne peux pas.

Si vous obtenez tout le HTML avec BeautifulSoup, vous obtiendrez le résultat suivant.

Code pour obtenir du HTML


BeautifulSoup(driver.page_source, 'html.parser')

Résultat d'acquisition


<html>
    <head>
        <!-- head -->
    </head>
    <body>
        <!-- body -->
        <iframe id="iframe" 
                scrolling="yes"
                src="https://example.com/iframe"
                src_data="https://example.com/iframe">
        </iframe>
    </body>
</html>

Chose que tu veux faire

Je veux voir et opérer dans iframe.

Solution

Dans le code ci-dessous, le pilote se concentre sur l'iframe.

iframe = driver.find_element_by_id('#iframe')
driver.switch_to.frame(iframe)

Code pour obtenir du HTML


BeautifulSoup(driver.page_source, 'html.parser')

Assurez-vous que le HTML est en iframe.

référence

https://www.selenium.dev/documentation/ja/webdriver/browser_manipulation/#webelementを使う

Postscript

Pour revenir à la fenêtre d'origine, utilisez le code suivant.

driver.switch_to.default_content()

Recommended Posts

Impossible de manipuler l'iframe dans la page avec Selenium
Je n'arrive pas à me connecter à la page d'administration avec Django 3
Je ne peux pas obtenir l'élément dans Selenium!
Quand j'obtiens une erreur de pilote chrome dans Selenium
Créer une nouvelle page en confluence avec Python
J'étais accro au grattage avec Selenium (+ Python) en 2020
Je veux travailler avec un robot en python.
J'ai essayé un RPA simple pour me connecter avec du sélénium
Je ne peux pas transformer un projet utilisant PyWebView en un exe avec PyInstaller
Grattage avec du sélénium en Python
Je ne peux pas effectuer de recherche avec # google-map. ..
Gratter la page i-town avec du sélénium
J'ai fait un jeu de frappe simple avec tkinter de Python
Jusqu'à ce que Django retourne quelque chose avec un robot de ligne!
Lambda dans VPC ne peut pas envoyer de courrier avec Boto3 même si vous utilisez le point de terminaison VPC pour SES
pyenv-vertualenv n'installe pas correctement la série python3
Scraping avec Selenium en Python (Basic)
J'obtiens une KeyError dans pyclustering.xmeans
Je ne peux pas entrer la norme dans le sous-processus ...
Action que mysql-connector-python ne peut pas être installé avec anaconda
J'ai fait une loterie avec Python.
Je veux créer un graphique avec des lignes ondulées au milieu avec matplotlib (je veux manipuler l'impression)
J'ai essayé de faire un processus d'exécution périodique avec Selenium et Python
Scikit-learn ne peut pas être installé en Python
J'ai écrit un script pour extraire les liens de pages Web en Python
Je ne peux pas utiliser le japonais avec pyperclip
J'ai créé un démon avec Python
J'ai essayé de me connecter automatiquement à Twitter avec du sélénium (RPA, scraping)
Je ne peux pas importer de modules dans le répertoire parent même avec sys.path.append ('..')
Python VBA pour obtenir une capture de la page WEB entière avec Selenium
J'ai eu du mal avec l'erreur d'importation: le chargement de la DLL a échoué dans tensorflow 2.0
J'ai créé un outil pour parcourir automatiquement plusieurs sites avec Selenium (Python)
(Matplotlib) Je veux dessiner un graphique avec une taille spécifiée en pixels
Je suis resté coincé dans la redirection d'une application flask avec un proxy inverse entre les deux
J'ai fait une erreur en récupérant la hiérarchie avec MultiIndex of pandas
Livre en spirale en Python! Python avec un livre en spirale! (Chapitre 14 ~)
Je veux imprimer dans la notation d'inclusion
J'ai fait un programme de gestion de la paie en Python!
J'ai fait un compteur de caractères avec Python
Dessinez un cœur en rubis avec PyCall
J'ai dessiné une carte thermique avec Seaborn [Python]
J'ai essayé un langage fonctionnel avec Python
Ce que j'ai fait avec les tableaux Python
Je ne peux plus déployer avec le moteur d'application Google
J'ai fait une carte hexadécimale avec Python
J'ai fait un jeu de vie avec Numpy
Construisez une machine d'acquisition de capture avec Selenium
Démarrage de Node.js dans un environnement virtuel
J'ai créé un outil de mot de passe en Python.
J'ai fait un jeu rogue-like avec Python
Je voulais vraiment copier avec du sélénium
J'ai fait un simple blackjack avec Python
Je ne peux pas installer le package avec pip.
J'ai créé un fichier de configuration avec Python
Je ne peux pas voir le nouveau fichier avec yum
J'ai fait une application WEB avec Django
J'ai fait un simulateur de neurones avec Python
Pourquoi ne puis-je pas installer matplotlib avec python! !!
J'ai essayé de faire un processus périodique avec CentOS7, Selenium, Python et Chrome
J'ai enregistré PyQCheck, une bibliothèque qui peut effectuer QuickCheck avec Python, dans PyPI.