Maison >développement back-end >Tutoriel Python >Selenium `.text` vs `.get_attribute('innerHTML')` : quand dois-je utiliser chacun ?
Lors de l'interaction avec des éléments Web à l'aide de Selenium, obtenir leur contenu textuel peut être réalisé à travers différentes approches. Parmi ceux-ci figurent .text et .get_attribute("innerHTML"). Bien qu'ils puissent sembler interchangeables, il existe des différences fondamentales entre les deux et des cas spécifiques où l'un est plus approprié que l'autre.
.get_attribute("innerHTML" ) récupère le innerHTML d'un élément, y compris tout son contenu et son balisage. Cette méthode tente d'abord de récupérer la propriété portant le nom spécifié. Si aucune propriété n'existe, il renvoie l'attribut du même nom. Si aucun des deux n'est trouvé, il renvoie Aucun.
Les valeurs jugées véridiques (équivalentes à vrai ou faux) sont rendues sous forme de booléens. À l’inverse, toutes les autres valeurs non None sont renvoyées sous forme de chaînes. Pour les attributs ou propriétés qui n'existent pas, None est renvoyé.
Arguments :
Exemple :
# Get the innerHTML of an element html = target_element.get_attribute("innerHTML")
.text récupère le contenu textuel d'un élément, à l'exclusion de tout balisage ou style.
Définition :
def text(self): """The text of the element.""" return self._execute(Command.GET_ELEMENT_TEXT)['value']
Exemple :
# Get the text of an element text = target_element.text
Malgré la similitude superficielle de .text et .get_attribute("innerHTML"), il y a des distinctions cruciales à prendre en compte :
Lors du chargement d'une page Web, le navigateur interprète le code HTML et crée des objets DOM. Les attributs définis dans le code HTML deviennent des propriétés de ces objets DOM. Cependant, si un attribut n'est pas standard pour un élément particulier, il n'aura pas de propriété correspondante.
Dans de tels cas, les attributs sont accessibles en utilisant les méthodes suivantes :
Attributs standards en HTML sont généralement synchronisés avec leurs propriétés correspondantes. Cela signifie que lorsqu'un attribut est modifié, la propriété est automatiquement mise à jour, et vice versa.
En Python, un attribut est accessible en utilisant la notation par points (par exemple, someObj .nom). Il peut s'agir d'une variable d'instance ou accessible via des méthodes getter et setter spécialisées définies en tant que propriétés.
Le choix entre .text et .get_attribute("innerHTML") lors de l'extraction du contenu de l'élément dépend de les exigences spécifiques de la tâche d'automatisation. Si l'objectif est d'obtenir le texte visible sans aucun balisage ni style, .text est idéal. Alternativement, si une représentation complète du contenu HTML est nécessaire, y compris tous les éléments et leur formatage, .get_attribute("innerHTML") est le choix approprié.
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!