Maison >développement back-end >Tutoriel Python >Sélénium : `get_attribute('innerHTML')` vs `.text` – Quand dois-je utiliser lequel ?

Sélénium : `get_attribute('innerHTML')` vs `.text` – Quand dois-je utiliser lequel ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-30 11:08:14329parcourir

Selenium:  `get_attribute(

Comparaison de get_attribute("innerHTML") et .text dans Selenium

Lorsque vous travaillez avec le framework Selenium, vous pouvez rencontrer des situations où vous avez besoin pour récupérer le texte ou innerHTML d'un élément. Bien que les deux méthodes puissent fournir des résultats similaires, il existe des différences fondamentales à prendre en compte.

get_attribute("innerHTML")

get_attribute("innerHTML") récupère le innerHTML d'un élément. InnerHTML inclut le contenu de l'élément, y compris ses éléments enfants. Cette méthode tentera d’abord de renvoyer la valeur d’une propriété portant le nom donné. Si la propriété n'existe pas, elle renvoie la valeur de l'attribut du même nom.

# Example
my_text = target_element.get_attribute("innerHTML")

.text

.text récupère le contenu textuel d'un élément. Cette méthode ignore les balises HTML ou les éléments enfants et renvoie uniquement le texte visible.

# Example
my_text = target_element.text

Attributs et propriétés

Pour comprendre la distinction entre get_attribute("innerHTML" ) et .text, il est important de noter la différence entre les attributs et les propriétés en HTML et sa représentation DOM.

Les attributs sont définis en HTML balises et fournissent des informations supplémentaires sur l’élément, telles que son identifiant, sa classe ou son style. Les propriétés, en revanche, sont dynamiques et reflètent l'état actuel de l'élément.

Lorsque le navigateur analyse le HTML, il crée des objets DOM pour les éléments. Les attributs HTML standard sont automatiquement convertis en propriétés DOM. Cependant, les attributs non standards restent accessibles uniquement via la méthode getAttribute().

Cas d'utilisation

Considérez les scénarios suivants :

  • Si vous devez récupérer le contenu HTML complet, y compris les balises et les éléments imbriqués, utilisez get_attribute("innerHTML").
  • Si vous n'avez besoin que du texte visible, utilisez .text.

Exemple

Supposons que vous ayez le HTML suivant :

<body>

Utilisation de get_attribute("innerHTML") sur le corps element retournerait :

<body>

Alors que l'utilisation de .text sur l'élément body renverrait :

Welcome to Selenium! Written by John Doe

Dans ce cas, si votre objectif est d'extraire la structure HTML complète, get_attribute ("innerHTML") serait approprié. Si vous n'avez besoin que du texte affiché, .text suffirait.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn