Je rencontre des problèmes lors de l'écriture d'un test d'acceptation de la fonctionnalité de connexion à l'aide de la bibliothèque de demandes. La connexion a été implémentée en utilisant la méthode post et je n'ai aucun moyen de modifier directement une chaîne de requête et de manipuler l'URL. Ce que j'essaie de faire est de soumettre manuellement les données de poste et rediriger la page vers la page où il irait régulièrement si un utilisateur connecté avec succès. Je voudrais récupérer le code HTML de cette page et vérifier la connexion réussie, comment est-ce que je ferais ça?Test d'acceptation avec bibliothèque de requêtes (python)
Cette méthode échoue:
data={'email': '[email protected]', 'password': 'example'}
login_url="examplepage.com/signin"
request_data = requests.post(login_url, data, allow_redirects=True)
print request_data.content
C'est ce que resp.headers retours:
{'content-length': '1124', 'date': 'Sun, 14 Apr 2013 16:12:51 GMT', 'set-cookie': 'session="+udnwfCkuAuFGp9QKOiU1YS2X1s=?_fresh=STAwCi4=&_id=Uyc3XHhkZVx4Y2J3T1x4YjBceDkxeFx4MWNceGFhXHhkNFx4OTMhKVx4MGJyJwpwMQou&csrf=Uyc2Mzk0YjVjZjMzMGZkMTNkY2NiM2EzZTZkYzgyMjhkY2IwOWQ2NmM3JwpwMQou"; Path=/; HttpOnly', 'content-type': 'text/html; charset=utf-8', 'connection': 'keep-alive', 'server': 'Werkzeug/0.8.3 Python/2.7.3'}
resp.content retourne juste le code HTML de la page de connexion:
<title>Web App</title>
</head>
<body>
<div>Web App: <a href="/home">Home</a>
| <a href="/signin">Login</a>
| <a href="/register">Register</a>
</div>
<hr>
<h1>Sign in</h1>
<form action="" method=post name="signin">
<div style="display:none;"><input id="csrf_token" name="csrf_token" type="hidden" value="20130414164251##fd7e82d47974518d098b41cecf2a4452f890317f"></div>
<dl>
<dt><label for="email">Email Address</label>
<dd><input id="email" name="email" type="text" value="[email protected]">
</dd>
<dt><label for="password">Password</label>
<dd><input id="password" name="password" type="password" value="">
</dd>
</dl>
<p><input type="submit" value="Sign in">
</form>
<a href="/login"> Click here to sign in using your Google, Yahoo, AOL, Flickr, or another OpenID account. </a>
</body>
</html>
Comment est-ce que cela échoue? Qu'est-ce qui revient de la commande d'impression? – bbayles
Il ne redirigeait pas, il retournerait juste le signe dans la page html. – Mike