L'automatisation de l'IE invite de confirmation avec Powershell
J'ai un beau script powershell qui permet d'automatiser un site web particulier pour ma fille. Récemment, ils ont changé le site et a ajouté une nouvelle fonctionnalité qui permettrait d'accélérer mon script par un facteur de 10. Le problème, c'est le type d'entrée qu'ils utilisent pour activer ceci ouvre une boîte de dialogue de confirmation. Le code HTML ressemble à ceci
<input type=submit name='enter_all' value='Enter all' onClick="return confirm('Enter all?');">
Puis-je automatiser répondre à cette boîte de dialogue dans powershell? Je veux que le script s'exécute en arrière-plan, donc je pense que l'envoi de touches est.
Comment faites-vous de l'automatisation de la mesure?
À l'aide de com et internet explorer comme l'exemple stej donne ci-dessous. À l'aide de l'IE objet com je peux remplir les formulaires, cliquez sur valeurs, etc. Fonctionnait très bien jusqu'à ce que je suis tombé sur cette pop-up de confirmation.
À l'aide de com et internet explorer comme l'exemple stej donne ci-dessous. À l'aide de l'IE objet com je peux remplir les formulaires, cliquez sur valeurs, etc. Fonctionnait très bien jusqu'à ce que je suis tombé sur cette pop-up de confirmation.
OriginalL'auteur Kevin Gale | 2011-11-17
Vous devez vous connecter pour publier un commentaire.
Je n'aurais pas la peine d'essayer de trouver comment faire, cliquez sur la boîte de dialogue de confirmation, il semble assez difficile de négocier uniquement avec COM.
Au lieu de cela, je voudrais simplement envoyer le formulaire comme cela. Supposons que j'ai ce code HTML:
Que je ne peux ignorer la boîte de dialogue de confirmation avec ce code:
Je l'ai essayé mais je ne peux pas le faire fonctionner. La soumission s'exécute mais ne semble pas faire quoi que ce soit. Le formulaire a plus d'un type d'entrée de soumettre pourrait être le problème?
Oui, ça pourrait être un problème. Mais sans le HTML ou de l'accès à la page, il est difficile de conseils rien de plus..
Je pourrais prendre la totalité du code HTML, mais il est assez grand et l'accès n'est pas une option, car un connexion est nécessaire. Le hack je suis venu avec fonctionne de manière fiable, donc je vais juste le laisser en place. Merci pour la réponse.
OriginalL'auteur stej
J'ai encore plus simple solution de ce. Vous pouvez remplacer le natif
window.confirm
fonction avec votre propre. Mon de mise en œuvre ci-dessous le remplace par unconfirm
fonction qui permet d'ignorer la boîte de dialogue de confirmation qu'une seule fois.PowerShell:
Après l'exécution du script, la fenêtre de IE s'ouvre. Appuyez sur F12 pour aller à la console JavaScript et le type:
Il sera de retour
true
. Essayez d'exécuterconfirm
de nouveau, l'original de la boîte de dialogue de confirmation s'ouvre.OriginalL'auteur orad
Pour répondre à ma propre question, mais je n'ai trouver un moyen de le faire même si c'est un peu un hack.
Le script principal utilise Internet Explorer via Com comme
Il y a beaucoup d'exemples sur la façon d'utiliser le ie com objet de naviguer, de remplir les champs, cliquez sur les boutons, etc, etc. Cependant, le pop-up de confirmation des causes justes choses pour raccrocher.
Pour contourner ce problème, j'ai commencé un autre thread à l'aide de La guêpe qui est une bibliothèque pour l'automatisation des windows forms. Dans ce fil, j'ai tout simplement s'asseoir dans une boucle de la recherche de l'invite de confirmation et cliquez sur. (La fenêtre s'ouvre de nombreuses fois dans mon cas). Le code de ce script ressemble à ceci
OriginalL'auteur Kevin Gale
OriginalL'auteur naba