Comment ne pas devenir fou avec Firefox, FF.au3, Xpath - [Le calepin du geek]
Le calepin du geek
Geek : Personne s’intéressant à des domaines pointus, avec une once de créativité.

Ceci est un site perso, dans le pur esprit web 1.0, compilant des notes diverses sur des thèmes d’intérêt. (Informatique, programmation, voyage à vélo, réflexions)

Comment ne pas devenir fou avec Firefox, FF.au3, Xpath

Coder les expressions Xpath à la main, c’est pas bon pour la santé mentale, il vaut mieux utiliser un générateur de code comme aide.

Article mis en ligne le 21 décembre 2015
par aldoniel
Imprimer cet article logo imprimer

FF.au3 est une librairie autoit pour automatiser Firefox comme on le ferait avec internet explorer (via ie.au3, la libairie qui facilite l’usage de son API COM).

Elle est développée par Thorsten Willert, dernière version sur son site. La documentation des fonction est assez bonne.

L’intérêt par rapport à internet explorer, est que l’on va utiliser un outil pour générer le code XPath pour accéder en une ligne à un élément dans une page.

 Environnement de programmation

  • Installer autoit, FF.au3, firefox, l’add-on MozRepl pour ouvrir le lien entre le script et firefox.
  • ajouter les add-on firebug, fireXPath.
  • On ajoutera aussi XPath Cheker, qui n’est pas compatible avec _FFXPath car il génère une syntaxe différente, mais qui reste bien pratique pour exécuter directement dans le navigateur les requêtes Xpath.

 Génération du code

  • Examiner l’élément avec firebug (clic-droit sur l’élément dans Firefox).
    • Repérer les attributs intéressants (ex. "textContent" ; "innerHTML")
  • Examiner l’élément avec fireXPath, obtenir le chemin Xpath.

Construire le code. Exemple avec l’expression Xpath .//*[@id='profile']/div[1]

Ex. de code pour lire du texte sur une page.

Ex. d’extrait de code pour simuler un clic.

$sObj = _FFXpath(".//*[@id='content']/a","",9)
_FFClick($sObj)

 Contourner un défaut de conception

_FFXPAth renvoie du texte en unicode affiché en ascii (sic). Il faut le convertir en utf8 pour récupérer les accents, avec _UnicodeToAnsi

Le crédit revient entièrement à Holzer

ex :



Site réalisé sous SPIP
avec le squelette ESCAL-V3
Version : 3.70.61