Je suis en train de programmer un robot qui doit me permettre de tester si =
un mot de passe par d=E9faut a bien =E9t=E9 chang=E9 sur des serveurs de mo=
n intranet.
Je cherche =E0 acc=E9der =E0 remplir le champ username et je tourne en rond=
=E0 cause des frames.
J'ai test=E9 de la faire avec mechanize. Mais comme on peut le remarquer, i=
l n'y a pas de body dans la page web, donc je ne peux pas instancier l'obje=
t form et obtenir les champs de la page via cette m=E9thode.
Je peux ouvrir directement la page htm o=F9 se trouve username et le bouton=
de validation, mais =E7a ne marche pas. Il manque toutes les fonctions par=
entes qui permettent de lancer r=E9ellement l'identification.
Voici le d=E9but de mon code qui fonctionne. Il se connecte =E0 ma page et =
me renvoie correctement le code source.
br =3D mechanize.Browser()
br.set_all_readonly(False)
br.set_handle_robots(False) # ignore robots
br.set_handle_refresh(False) # can sometimes hang without this
br.addheaders =3D [('User-agent', 'Firefox')]
url =3D "file:///root/Prog/html/AC1.htm"
response =3D br.open(url)
print response.read() =20
Ensuite, on cherchant sur internet, il m'a sembl=E9 comprendre que les fram=
es =E9taient renvoy=E9es par la classe links()
lnkList =3D [] =20
for lnk in br.links():
lnkList.append(lnk.url)
print "Liens : ", lnk.url
Ca me liste correctement les liens.
Mais impossible d'utiliser follow_link(), find_link.... je n'y arrive pas .=
... impossible d'atteindre mon champ username....
Apr=E8s au mieux, j'arrive =E0 r=E9cup=E9rer le pointeur de l'objet frame m=
ais je me sers plus de mechanize....
frame =3D sys._getframe(2)
print frame
Quelqu'un connait-il une solution ?
Soit dans l'utilisation du code, soit dans mon raisonnement et mon approche=
du probl=E8me.