[Perl] Capturer un élément avec Selenium

Patrice Karatchentzeff patrice.karatchentzeff at gmail.com
Ven 26 Avr 09:29:56 CEST 2024


Bon, en fait, c'est un peu plus complexe... J'ai l'impression que le
module Selenium met un bazar pas possible dans l'encodage...

Honnêtement, ça fait au moins 15 ans que j'utilise le pragma use utf8;
en tête de programme sans me poser de question et tout fonctionne.

Ici, c'est le bazar. Avec le pragma, toutes les chaînes affichées en
console (qui est en UTF8) sont mal encodées, mais les chaînes envoyées
au navigateur via Selenium le sont bien. Et vice-versa.

Du coup, j'utilise seulement le pragma use Encode qw( decode_utf8 );
et je décode les chaînes que j'envoie au navigateur (qui sont mal
affichées si je ne les réencode pas pour les afficher en console).

Il doit y avoir une raison de compatibilité avec tous les
navigateurs/environnement derrière je suppose, mais quand on a un peu
l'habitude de Perl, ça surprend de devoir se repencher sur la question
en 2024 :)

Bon, dommage que la liste ne soit pas archivée, car c'est le genre de
truc que Google aurait pu me trouver en pas longtemps...

PK

Le jeu. 25 avr. 2024 à 13:55, Patrice Karatchentzeff
<patrice.karatchentzeff at gmail.com> a écrit :
>
> En fait, non. En virant le pragma, je résous tous mes problèmes. Je ne
> comprends pas pourquoi, mais au moins mon problème est résolu :)
>
> Le jeu. 25 avr. 2024 à 12:47, Patrice Karatchentzeff
> <patrice.karatchentzeff at gmail.com> a écrit :
> >
> > Salut,
> >
> > Je n'utilise pas de fichier. Je passe une chaîne de mon script à
> > Selenium qui lit une chaîne sur le navigateur. Maintenant que je
> > l'écris, je me demande si cela ne vient pas de la conf du navigateur
> > par Selenium. Je vais vérifier.
> >
> > Merci
> >
> > Le jeu. 25 avr. 2024 à 12:04, L Boivin <elbeho at boivin.eu> a écrit :
> > >
> > > Hello,
> > >
> > > Sur use utf8 , cela dit à perl que le CODE est en UTF8.
> > > L'encodage des fichiers que tu vas manipuler n'est pas
> > > influencé par ce pragma.
> > > Il faut dire à l'ouverture que les fichiers sont en utf8
> > > si c'est ce que tu veux.
> > >
> > > Pour XPath, Alex a répondu.
> > >
> > > Bye
> > > Laurent
> > >
> > > Le 24/04/2024 à 09:24, Patrice Karatchentzeff a écrit :
> > > > Salut,
> > > >
> > > > J'ai deux soucis avec Selenium. Le premier, plus gênant que bloquant,
> > > > est que l'utilisation du pragma use utf8; fonctionne de travers. Tout
> > > > ce que j'envoie sur le serveur est correctement encodé, mais ce que
> > > > j'affiche dans la console avec des print est mal encodé... Et
> > > > inversement. Et ma console est bien en utf8 :)
> > > >
> > > > Plus embêtant, je n'arrive pas à piger comment fonctionne
> > > > $driver->find_elements.
> > > >
> > > > La documentation n'en dit presque rien et ne propose que des exemples
> > > > triviaux. J'arrive à le faire fonctionner avec des exemples simples,
> > > > mais évidemment, j'ai des besoins complexes :)
> > > >
> > > > Par exemple, tiré d'une page de recherche Google (qui fait tout pour
> > > > rendre son code source imparsable)
> > > >
> > > > <h3 aria-hidden="true"><div class="GNJvt ipz2Oe"><span
> > > > class="kQdGHd"><span class="OTvAmd z1asCe QFl0Ff"><svg
> > > > focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24
> > > > 24"><path d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6
> > > > 6-6z"></path></svg></span></span><span class="RVQdVd">Plus de
> > > > résultats</span></div></h3>
> > > >
> > > > Je veux sélection h3 aria-hidden="true" pour pouvoir ensuite récupérer
> > > > l'enfant span « Plus de résultats ».
> > > >
> > > > Je sais sélectionner tous les h3, pas ceux avec cette propriété
> > > > seulement. J'ai essayé
> > > >
> > > > $driver->find_elements("//h3[aria-hiden='true']")
> > > >
> > > > Mais ça juste marche pas :(
> > > >
> > > > Si quelqu'un peut m'expliquer comment le faire, pour que je pige, je
> > > > louerai ses louanges perliennes jusqu'à la fin de l'Epoch...
> > > >
> > > > Merci
> > > >
> > > > PK
> > > >
> > > _______________________________________________
> > > Perl mailing list
> > > Perl at mongueurs.net
> > > http://listes.mongueurs.net/mailman/listinfo/perl
> > > Attention, les archives sont publiques
> >
> >
> >
> > --
> >       |\      _,,,---,,_           Patrice KARATCHENTZEFF
> > ZZZzz /,`.-'`'    -.  ;-;;,_   mailto:patrice.karatchentzeff at gmail.com
> >      |,4-  ) )-,_. ,\ (  `'-'
> >     '---''(_/--'  `-'\_)
>
>
>
> --
>       |\      _,,,---,,_           Patrice KARATCHENTZEFF
> ZZZzz /,`.-'`'    -.  ;-;;,_   mailto:patrice.karatchentzeff at gmail.com
>      |,4-  ) )-,_. ,\ (  `'-'
>     '---''(_/--'  `-'\_)



-- 
      |\      _,,,---,,_           Patrice KARATCHENTZEFF
ZZZzz /,`.-'`'    -.  ;-;;,_   mailto:patrice.karatchentzeff at gmail.com
     |,4-  ) )-,_. ,\ (  `'-'
    '---''(_/--'  `-'\_)


Plus d'informations sur la liste de diffusion Perl