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;"
17
demandé sur JeffC 2015-08-26 21:36:00

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é.

22
répondu JeffC 2015-08-26 23:31:49
webElement.getAttribute("href");
webElement.getAttribute("class");
.
.
.

ou pour les amener tous:

Object[] attr = ((JavascriptExecutor)seleniumdriver).executeScript("return arguments[0].attributes);", webElement);
4
répondu tdrury 2015-08-26 21:32:08

.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");
2
répondu fahad 2017-07-20 11:50:52

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 :-

http://www.java2s.com/Tutorials/JavascriptDemo/f/find_out_the_difference_between_innerhtml_and_outerhtml_in_javascript_example.htm

vous trouverez ci-dessous la syntaxe qui nécessite une liaison différente. Changer innerHTMLouterHTML 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();
2
répondu Shubham Jain 2017-09-03 07:17:42

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(">"));
1
répondu LoveLovelyJava 2015-08-28 14:25:12