J'essaie d'écrire un script Bash qui ouvre un navigateur, clique sur un bouton HTML d'une page Web et ferme le navigateur après avoir obtenu une réponse. J'ai besoin de ce script pour être exécutable depuis Terminal. Si ce n'est pas un script Bash, alors peut-être un script Python.
Le formulaire est:
<form method="post" action="duophones?yc=sasv1S2f8mXKITRJS1XrenZ30SA-" enctype="application/x-www-form-urlencoded">
<input name="phone" value="+15551231235" type="hidden">
<input name="action" value="dapact" type="hidden">
<input name="session" value="0" type="hidden">
<button class="c01 c01v0" name="action" type="submit" value="Activate +15551231234 over SMS (recommended)" override="true">Activate +15551231234 over SMS (recommended)</button>
</form>
Le script que j'ai est:
curl -d value="Activate +15551231234 over SMS (recommended)" www.testpage.com
Toute aide ou orientation serait appréciée!
Réponses:
Vous devriez envisager d'utiliser opensource Sélénium .
Avec un Selenium IDE plugin pour Firefox, vous pouvez enregistrer vos actions (ouvrir une page, cliquer sur un bouton), rejouer ces chansons et générer des scripts Python ou Ruby riches que vous pouvez personnaliser et appeler à partir de la CLI.
La disponibilité d'Apache par défaut pour les tests de script exemple pourrait ressembler à ceci:
la source
Utilisation boucle (
curl
). C'est un outil de ligne de commande qui transfère des données à l'aide de divers protocoles, y compris HTTP. La beauté ici est que vous n’avez pas besoin d’un navigateur graphique; tout sera traité au niveau de la ligne de commande.Le "bouton" sur lequel vous souhaitez appuyer se trouvera sous une forme ou une autre. Vous pouvez utiliser les outils de développement de Chrome ou Firebug de Firefox pour afficher le code du formulaire. Voici un exemple de formulaire avec une seule zone de texte et un bouton d'envoi:
Si vous deviez remplir ce formulaire dans votre navigateur Web et cliquer sur Soumettre, vous enverriez tout ce que vous avez tapé dans la zone de texte et envoyé la demande au serveur.
La chose importante à noter ici est que le formulaire crée un "champ" de texte appelé téléphone qui est où il va stocker les données que vous entrez pour être posté. Dans ce cas, lorsque vous tapez votre numéro de téléphone (+12125551212), il attribue cette valeur à téléphone . Quand vous frappez le Soumettre bouton il envoie
phone="+12125551212
dans le cadre du POST.Donc, en utilisant ce que je suppose, c'est le numéro de téléphone que vous voulez soumettre comme valeur pour la variable, en curl, le code ressemblerait à ceci:
Puisque
curl
est un utilitaire de ligne de commande, vous pouvez le mettre en natif dans un script bash:la source
Perl est une autre option pour une navigation Web automatisée robuste WWW :: Mécaniser module.
À signaler le spam au service spamcop , J'utilise une combinaison de AppleScript et de Perl. AppleScript interagit avec Mail et récupère le contenu du courrier indésirable, tandis que perl gère la navigation sur le Web.
Voici un exemple de
WWW::Mechanize
pour soumettre un formulaire à un serveur Web, recherchez un bouton spécifique dans la réponse et cliquez sur le bouton:la source