1

Je veux créer des webtests automatisés avec PowerShell. Mon problème est maintenant que lorsque je clique sur un bouton avec un popup JavaScript, le script se bloque à la ligne suivante parce que l'événement n'est pas fini. Le popup est chargé mais le script se bloque.PowerShell JavaScript Button Click existe-t-il une commande de Force?

Y a-t-il une commande de force? Parce que dans les lignes suivantes, je veux utiliser un Commandlet pour cliquer sur le bouton OK.

$ie.Document.getElementById("ButtonID")|foreach{$_.Click()} #never finished 

Répondre

1

Il existe deux approches à ce problème commun avec les tests automatisés dans les navigateurs. Votre première option consiste à redéfinir toutes les fonctions JavaScript avec votre propre implémentation simulée.

window.alert = function(msg) { log_info(msg); }; 
window.prompt = function(msg) { return fixture(msg); }; 
window.confirm = function(msg) { return randomBool; }; 

La modification de ces fonctions (et d'autres comme l'impression, etc.) avant de commencer votre automatisation arrête les invites de bloquer le processus. Mais vous pouvez toujours avoir à vous soucier des alertes de sécurité et des boîtes de dialogue d'informations d'identification. Par conséquent, la deuxième approche consiste à exécuter un utilitaire de surveillance pouvant interagir avec les fenêtres au niveau du système d'exploitation. Jetez un oeil à IEUnit - http://code.google.com/p/ieunit/ Il utilise un contrôle ActiveX personnalisé appelé Desktoop (mal orthographié volontairement) qui permet d'interagir avec Windows et les alertes de sécurité à partir de Windows Script Host.

Vous pouvez soit utiliser l'objet dans activex powershell ou suivre cette référence - http://msdn.microsoft.com/en-us/magazine/cc163301.aspx pour des idées sur la mise en œuvre de votre propre desktoop comme module en utilisant natif powershell caractéristiques