Viser par style

Le
Gloops
Bonjour tout le monde,

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

Si je ne m'abuse, il n'y a que Xpath pour faire ça ?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gloops
Le #26313911
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.
Une Bévue
Le #26314079
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 );
}
Gloops
Le #26314103
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.
Gloops
Le #26314134
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.
Une Bévue
Le #26314194
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...
Gloops
Le #26315718
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 ...
Chad Warwick
Le #26322961
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?
Gloops
Le #26323079
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 .
Publicité
Poster une réponse
Anonyme