Comment obtenir le code HTML D'un WebElement en sélénium
je suis nouveau à tester donc mes excuses à l'avance si ma question semble un peu primaire.
J'utilise le sélénium et le Java pour écrire un test.
je sais que
webElement.getAttribute("innerHTML");
m'apporte l'innerHTML, par exemple pour l'élément ci-dessous:
<a href="#" class="ui-dialog-titlebar-close ui-corner-all" role="button" style="position: absolute; border-radius: 0px 0px 4px 4px;">
<span class="ui-icon ui-icon-closethick">close</span>
</a>
renvoie:
<span class="ui-icon ui-icon-closethick">close</span>
mais j'ai besoin de quelque chose qui m'apporte L'attribut intérieur de WebElement "a", quelque chose comme ci-dessous:
href="#" class="ui-dialog-titlebar-close ui-corner-all" role="button" style="position: absolute; border-radius: 0px 0px 4px 4px;"
5 réponses
si vous voulez le HTML de l'élément lui-même, vous pouvez utiliser
webElement.getAttribute("outerHTML");
il retournera le HTML de l'élément lui-même plus tous les éléments enfants. Je ne suis pas sûr que ce soit exactement ce que vous voulez. Je ne pense pas qu'il y ait un moyen d'obtenir seulement le HTML de l'élément sélectionné.
webElement.getAttribute("href");
webElement.getAttribute("class");
.
.
.
ou pour les amener tous:
Object[] attr = ((JavascriptExecutor)seleniumdriver).executeScript("return arguments[0].attributes);", webElement);
.getAttribute("innerHTML");
fonction pour extraire la source sous forme de chaîne de caractères
exemple de code:
String source = driver.findElement(By.xpath("/html/body/script[6]")).getAttribute("innerHTML");
vous pouvez lire l'attribut innerHTML pour obtenir la source du contenu de l'élément ou l'attribut outerHTML pour la source avec l'élément courant.
Exemple :- Supposons maintenant que votre élément est comme ci-dessous
<tr id="myRow"><td>A</td><td>B</td></tr>
sortie de L'élément interne
<td>A</td><td>B</td>
sortie de l'élément extérieur
<tr id="myRow"><td>A</td><td>B</td></tr>
Exemple En Direct :-
vous trouverez ci-dessous la syntaxe qui nécessite une liaison différente. Changer innerHTML
outerHTML
comme par requis.
Python:
element.get_attribute('innerHTML')
Java:
elem.getAttribute("innerHTML");
C#:
element.GetAttribute("innerHTML");
Ruby:
element.attribute("innerHTML")
JS:
element.getAttribute('innerHTML');
Si vous voulez toute la page HTML l'utilisation de code ci-dessous :-
driver.getPageSource();
Si nous avons ceci:
<a href="#" class="ui-dialog-titlebar-close ui-corner-all" role="button"
style="position: absolute; border-radius: 0px 0px 4px 4px;">
<span class="ui-icon ui-icon-closethick">close</span></a>
et nous avons besoin d'obtenir tous les attributs de la "une" qui sera ceci:
href="#" class="ui-dialog-titlebar-close ui-corner-all" role="button"
style="position: absolute; border-radius: 0px 0px 4px 4px;"
Nous pouvons utiliser ce code:
webElement.getAttribute("outerHTML").split(">")[0]
où webElement est "a".
, Ou plus précisément:
String s = we.getAttribute("outerHTML");
s = s.substring(2, s.indexOf(">"));