From patrice.karatchentzeff at gmail.com Wed Apr 24 09:24:18 2024 From: patrice.karatchentzeff at gmail.com (Patrice Karatchentzeff) Date: Wed, 24 Apr 2024 09:24:18 +0200 Subject: [Perl] =?utf-8?q?Capturer_un_=C3=A9l=C3=A9ment_avec_Selenium?= Message-ID: 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) 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 -- |\ _,,,---,,_ Patrice KARATCHENTZEFF ZZZzz /,`.-'`' -. ;-;;,_ mailto:patrice.karatchentzeff at gmail.com |,4- ) )-,_. ,\ ( `'-' '---''(_/--' `-'\_) From alex at garel.org Wed Apr 24 23:25:47 2024 From: alex at garel.org (Alex Garel) Date: Wed, 24 Apr 2024 23:25:47 +0200 Subject: [Perl] =?utf-8?q?Capturer_un_=C3=A9l=C3=A9ment_avec_Selenium?= In-Reply-To: References: Message-ID: Le 24/04/2024 à 09:24, Patrice Karatchentzeff a écrit : > ... > Par exemple, tiré d'une page de recherche Google (qui fait tout pour > rendre son code source imparsable) > > > > 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']") Vu que la doc dit que find_elements prend du XPath par défaut. https://metacpan.org/pod/Selenium::Remote::Driver#find_elements Je suppose que c'est du XPath que tu veux faire, mais dans ce cas il faut un @ devant le nom de ta propriété, et il faut deux "d" à hidden $driver->find_elements('//h3[@aria-hidden="true"]') J'ai mis des '' en extérieur de l'expression pour éviter à avoir à banaliser le @ Tu peux tester le XPath dans la console de firefox en utilisant $x("//expression-xpath") Si je comprends bien la doc, tu peux aussi aller sur du CSS si tu es plus à l'aise (et là c'est $$() dans la console firexfox): $driver->find_elements('h3[aria-hidden="true"]', "|css"|) Je te laisse tester et voir si ça marche :-) ++Alex -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From elbeho at boivin.eu Thu Apr 25 12:04:04 2024 From: elbeho at boivin.eu (L Boivin) Date: Thu, 25 Apr 2024 12:04:04 +0200 Subject: [Perl] =?utf-8?q?Capturer_un_=C3=A9l=C3=A9ment_avec_Selenium?= In-Reply-To: References: Message-ID: <735d51cc-cd9b-4006-af07-dd39943567b0@boivin.eu> 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) > > > > 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 > From patrice.karatchentzeff at gmail.com Thu Apr 25 12:47:37 2024 From: patrice.karatchentzeff at gmail.com (Patrice Karatchentzeff) Date: Thu, 25 Apr 2024 12:47:37 +0200 Subject: [Perl] =?utf-8?q?Capturer_un_=C3=A9l=C3=A9ment_avec_Selenium?= In-Reply-To: <735d51cc-cd9b-4006-af07-dd39943567b0@boivin.eu> References: <735d51cc-cd9b-4006-af07-dd39943567b0@boivin.eu> Message-ID: 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 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) > > > > > > > > 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- ) )-,_. ,\ ( `'-' '---''(_/--' `-'\_) From patrice.karatchentzeff at gmail.com Thu Apr 25 13:55:33 2024 From: patrice.karatchentzeff at gmail.com (Patrice Karatchentzeff) Date: Thu, 25 Apr 2024 13:55:33 +0200 Subject: [Perl] =?utf-8?q?Capturer_un_=C3=A9l=C3=A9ment_avec_Selenium?= In-Reply-To: References: <735d51cc-cd9b-4006-af07-dd39943567b0@boivin.eu> Message-ID: 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 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 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) > > > > > > > > > > > > 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- ) )-,_. ,\ ( `'-' '---''(_/--' `-'\_) From patrice.karatchentzeff at gmail.com Thu Apr 25 13:56:52 2024 From: patrice.karatchentzeff at gmail.com (Patrice Karatchentzeff) Date: Thu, 25 Apr 2024 13:56:52 +0200 Subject: [Perl] =?utf-8?q?Capturer_un_=C3=A9l=C3=A9ment_avec_Selenium?= In-Reply-To: References: Message-ID: Merci pour la réponse : je commence à piger. En fait, je n'avais pas compris qu'il y avait une syntaxe spécifique externe à Perl et je ne comprenais pas la logique... J'ai trouvé cela qui décortique : https://www.freeformatter.com/xpath-tester.html Je vais tester tout cela. Merci beaucoup. PK Le jeu. 25 avr. 2024 à 03:03, Alex Garel a écrit : > > > Le 24/04/2024 à 09:24, Patrice Karatchentzeff a écrit : > > ... > Par exemple, tiré d'une page de recherche Google (qui fait tout pour > rendre son code source imparsable) > > > > 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']") > > Vu que la doc dit que find_elements prend du XPath par défaut. https://metacpan.org/pod/Selenium::Remote::Driver#find_elements > > Je suppose que c'est du XPath que tu veux faire, mais dans ce cas il faut un @ devant le nom de ta propriété, et il faut deux "d" à hidden > > $driver->find_elements('//h3[@aria-hidden="true"]') > > J'ai mis des '' en extérieur de l'expression pour éviter à avoir à banaliser le @ > > Tu peux tester le XPath dans la console de firefox en utilisant $x("//expression-xpath") > > Si je comprends bien la doc, tu peux aussi aller sur du CSS si tu es plus à l'aise (et là c'est $$() dans la console firexfox): > > $driver->find_elements('h3[aria-hidden="true"]', "css") > > Je te laisse tester et voir si ça marche :-) > > ++Alex > _______________________________________________ > 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- ) )-,_. ,\ ( `'-' '---''(_/--' `-'\_) From patrice.karatchentzeff at gmail.com Fri Apr 26 09:19:33 2024 From: patrice.karatchentzeff at gmail.com (Patrice Karatchentzeff) Date: Fri, 26 Apr 2024 09:19:33 +0200 Subject: [Perl] =?utf-8?q?Capturer_un_=C3=A9l=C3=A9ment_avec_Selenium?= In-Reply-To: References: Message-ID: Bon, je n'y arrive toujours pas :( Voici le xpath (partiel et total ) que je teste désormais : //*[@id="arc-srp_150"]/div/div[10]/div/div/div[1]/div/div/span/a/div/div/div/div[2]/cite /html/body/div[4]/div/div[13]/div/div[4]/div/div[4]/div[3]/div[5]/div/div[10]/div/div/div[1]/div/div/span/a/div/div/div/div[2]/cite et le code css/html https://gamefaqs.gamespot.com ? 4... (tiré d'une recherche sur Google) Maintenant qu'il me semblait avoir mieux compris le xpath, pour capter l'élément 'cite', il me faut my $cite = $driver->find_element("//cite[\@role='text']"); # j'ai essayé en quotant avec "" ou '' selon, ça marche pas mieux ou bien pour récupérer TOUS les 'cite' my $site = $driver->find_elements("//cite"); Les deux me retournent des valeurs vides (Selenium ne trouve rien). Le seul truc qui fonctionne est my $div = $driver->find_elements("div"); qui me retourne bien toute la page et en parsant les enfants, je trouve ma classe. Mais bof la perf... Notez que my $div = $driver->find_elements("//div"); qui est censé fonctionner me retourne aussi une valeur vide... Du coup, je ne comprends pas bien comment faire (disons, comment optimiser un peu mon code, car sur une pleine page de google, ça peut faire dix secondes sur mon pécé antédiluvien pour parser l'arbre entier). J'ai l'impression que passer un xpath ne fonctionne pas. Et les autres syntaxes non plus, comme $driver->find_element('cite[@role="text"]', "css"); Je dois faire une énorme boulette, mais je ne vois vraiment pas. Le reste de mon code fonctionne, puisque lorsque je mets le div, cela fonctionne. Je l'utilise par ailleurs à d'autres endroits, pour les boutons, et cela fonctionne aussi. Le jeu. 25 avr. 2024 à 03:03, Alex Garel a écrit : > > > Le 24/04/2024 à 09:24, Patrice Karatchentzeff a écrit : > > ... > Par exemple, tiré d'une page de recherche Google (qui fait tout pour > rendre son code source imparsable) > > > > 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']") > > Vu que la doc dit que find_elements prend du XPath par défaut. https://metacpan.org/pod/Selenium::Remote::Driver#find_elements > > Je suppose que c'est du XPath que tu veux faire, mais dans ce cas il faut un @ devant le nom de ta propriété, et il faut deux "d" à hidden > > $driver->find_elements('//h3[@aria-hidden="true"]') > > J'ai mis des '' en extérieur de l'expression pour éviter à avoir à banaliser le @ > > Tu peux tester le XPath dans la console de firefox en utilisant $x("//expression-xpath") > > Si je comprends bien la doc, tu peux aussi aller sur du CSS si tu es plus à l'aise (et là c'est $$() dans la console firexfox): > > $driver->find_elements('h3[aria-hidden="true"]', "css") > > Je te laisse tester et voir si ça marche :-) > > ++Alex > _______________________________________________ > 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- ) )-,_. ,\ ( `'-' '---''(_/--' `-'\_) From patrice.karatchentzeff at gmail.com Fri Apr 26 09:29:56 2024 From: patrice.karatchentzeff at gmail.com (Patrice Karatchentzeff) Date: Fri, 26 Apr 2024 09:29:56 +0200 Subject: [Perl] =?utf-8?q?Capturer_un_=C3=A9l=C3=A9ment_avec_Selenium?= In-Reply-To: References: <735d51cc-cd9b-4006-af07-dd39943567b0@boivin.eu> Message-ID: 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 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 > 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 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) > > > > > > > > > > > > > > > > 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- ) )-,_. ,\ ( `'-' '---''(_/--' `-'\_) From elbeho at boivin.eu Fri Apr 26 11:18:01 2024 From: elbeho at boivin.eu (L Boivin) Date: Fri, 26 Apr 2024 11:18:01 +0200 Subject: [Perl] =?utf-8?q?Capturer_un_=C3=A9l=C3=A9ment_avec_Selenium?= In-Reply-To: References: <735d51cc-cd9b-4006-af07-dd39943567b0@boivin.eu> Message-ID: tldr: (ça va pas t'aider) use utf8 modifie le comportement des string. A propos de use utf8; un truc que j'ai appris hier au hasard d'un conversation dont le niveau me dépassait, ce pragma ne se contente pas de dire "le code est en UTF8" (ce que je traduisais en 1re approx par "on peut mettre des accents dans les noms de variables"). Ca modifie aussi le comportement des string. Donc "éazé" n'est pas encodé pareil avec et sans le use utf8; C'est peut-être pour ça que tu as des comportements différents avec et sans. Ca ne t'aide pas vraiment. Au mieux, une piste à creuser. Bonne journée Laurent Le 26/04/2024 à 09:29, Patrice Karatchentzeff a écrit : > 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 > 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 >> 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 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) >>>>> >>>>> >>>>> >>>>> 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- ) )-,_. ,\ ( `'-' >> '---''(_/--' `-'\_) > > >