Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Viser par style

8 réponses
Avatar
Gloops
Bonjour tout le monde,

Sur une page web, je vais avoir besoin d'atteindre un =E9l=E9ment qui n'e=
st=20
connu que par le style css qui lui est appliqu=E9.

Si je ne m'abuse, il n'y a que Xpath pour faire =E7a ?

8 réponses

Avatar
Gloops
Gloops a écrit le 09/10/2014 18:56 :
Si je ne m'abuse, il n'y a que Xpath pour faire ça ?




Et pour les gens qui n'utilisent XPath que de temps en temps, j'ai
trouvé un truc génial : l'extension XPath checker, pour Firefox.

ça ne dispense pas d'apprendre la syntaxe, sinon le résultat est à XPath
ce que les macros enregistrées sous Word sont à VBA : ça marche, ma is
pour aller de Viry-Châtillon à Ris-Orangis on passe par Londres et Ro me,
avec les bagages qui vont avec.
Avatar
Une Bévue
Le 09/10/14 18:56, Gloops a écrit :
Si je ne m'abuse, il n'y a que Xpath pour faire ça ?


ouaip !

très simple :
//
https://developer.mozilla.org/fr/docs/Introduction_à_l'utilisation_de_XPath_avec_JavaScript
//
https://developer.mozilla.org/fr/docs/Introduction_à_l'utilisation_de_XPath_avec_JavaScript#Constantes_d.C3.A9finies_de_XPathResult
var iterator =
document.evaluate("//div[@id='navbar']/ul[@class='menu']/li", document,
null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
try {
var thisNode = iterator.iterateNext();
while (thisNode) {
thisNode.addEventListener('click', displayPage, false);
thisNode = iterator.iterateNext();
}
} catch (e) {
console.log( "Erreur : L'arbre du document a été modifié pendant
l'itération " + e );
}
Avatar
Gloops
Une Bévue a écrit le 11/10/2014 07:10 :
https://developer.mozilla.org/fr/docs/Introduction_à_l'utilisation_de _XPath_avec_JavaScript




Ouaip, c'est fait, merci.

Maintenant, je vais tester ça sur un document qui n'a pas une structure
XHTML propre ...

HtmlAgilityPack n'a pas été jojo sur la page d'index, mais sur les pa ges
d'éléments il peut se rattraper.
Avatar
Gloops
Gloops a écrit le 09/10/2014 18:56 :
Bonjour tout le monde,

Sur une page web, je vais avoir besoin d'atteindre un élément qui n 'est
connu que par le style css qui lui est appliqué.

Si je ne m'abuse, il n'y a que Xpath pour faire ça ?






En définitive, il semble que getElementsByClassName soit pas mal aussi
pour faire ça, et ne nécessite pas de document au format XML.
Avatar
Une Bévue
Le 11/10/14 11:30, Gloops a écrit :
Maintenant, je vais tester ça sur un document qui n'a pas une structure
XHTML propre ...



ça peut tenir compte un nameSpaceResolver si tu es en xhtml avec du svg
dedans par ex.

aussi surtout ne pas modifier les nœuds dans la boucle d'itération Xpath...
Avatar
Gloops
Une Bévue a écrit le 11/10/2014 19:41 :
Le 11/10/14 11:30, Gloops a écrit :
Maintenant, je vais tester ça sur un document qui n'a pas une struct ure
XHTML propre ...



ça peut tenir compte un nameSpaceResolver si tu es en xhtml avec du s vg
dedans par ex.



Ah oui il y a une carte.
Mais si c'est l'espace de noms qui n'est pas reconnu je dois avoir un
message dans ce sens, non ?



aussi surtout ne pas modifier les nœuds dans la boucle d'itération Xpath...



Sauf que pour utiliser Xpath il faut un document XHTML, non ?
Enfin XML, mais comme c'est du HTML ...
Avatar
Chad Warwick
On Thu, 09 Oct 2014 18:56:11 +0200, Gloops wrote:

Bonjour tout le monde,

Sur une page web, je vais avoir besoin d'atteindre un élément qui n'est
connu que par le style css qui lui est appliqué.

Si je ne m'abuse, il n'y a que Xpath pour faire ça ?



Le style CSS? Veux-tu dire la classe, ou un style inline à la <div
style="display: none;">, ou une propriété CSS attribuée
programmatiquement?
Avatar
Gloops
Chad Warwick a écrit le 14/11/2014 14:41 :
On Thu, 09 Oct 2014 18:56:11 +0200, Gloops wrote:

Bonjour tout le monde,

Sur une page web, je vais avoir besoin d'atteindre un élémen t qui n'est
connu que par le style css qui lui est appliqué.

Si je ne m'abuse, il n'y a que Xpath pour faire ça ?



Le style CSS? Veux-tu dire la classe, ou un style inline à la <div
style="display: none;">, ou une propriété CSS attribué e
programmatiquement?





Bonjour,

Il a fallu que je relise le fil pour me rappeler de quoi il retourne.
A présent tout ce que je me rappelle est que j'ai fini par corriger les
pages d'index manuellement vers xhtml, et que pour extraire les numé ros
des pages de détails (ce dont il est question ici) je m'en suis bien sorti.

Si quelqu'un a du mal avec ça et qu'il faut que je fasse une synthà ¨se
dessus il faudrait quand même que je m'y replonge.

La bonne nouvelle est que je n'ai pas eu besoin d'utiliser le résult at
car un boulot m'est tombé dessus autrement : là où c'est u ne bonne
nouvelle surtout c'est que ça a fait plus vite et que ça a coà »té moins cher.

J'épiloguerais bien là-dessus mais là ce serait hors sujet .