Se connecter avec Microsoft
S'identifier ou créer un compte.
Bonjour,
Sélectionnez un autre compte.
Vous avez plusieurs comptes
Choisissez le compte avec lequel vous voulez vous connecter.

 Symptôme

Un script qui peut être exécuté avec succès en mode assisté ne s’exécute pas correctement en mode sans assistance.

Elle échoue généralement avec un message tel que : « Un problème s’est produit lors de l’exécution de l’action « Cliquer ». Impossible de cliquer sur le lien sur la page web. »

Cause

Les échecs classiques dans les exécutions sans assistance sont dus à l’une des causes suivantes :

  • Script non testé en mode assisté avant de passer au mode sans assistance

  • Configuration différente utilisée par la session sans assistance

  • Les écrans ne sont pas entièrement chargés (retards manquants)

  • Une invite UAC qui bloque l’automatisation de l’interface utilisateur au début de la session

Solution

Comme il peut y avoir des causes différentes, la solution ci-dessous décrit comment ajouter des captures d’écran avant et après une action d’échec pour obtenir des commentaires visuels. Si vous examinez attentivement les captures d’écran après une défaillance de script sans assistance, vous pouvez trouver l’une des causes répertoriées ci-dessus. Il décrit également comment comparer les paramètres de résolution d’affichage et de mise à l’échelle.

Si vous avez déjà des captures d’écran dans votre flux et qu’elles ne parviennent pas à s’exécuter, une boîte de dialogue Contrôle de compte d’utilisateur (UAC) peut bloquer l’exécution de votre flux. Connectez-vous à la machine qui reproduit le problème avec le compte que vous utilisez pour exécuter le flux et vérifiez si vous disposez d’une boîte de dialogue bloquante. Si vous le faites, modifiez votre routine de démarrage pour éviter que cela ne se produise.

Ajout de captures d’écran pour résoudre les problèmes

Commencez par vous connecter à l’ordinateur qui reproduit le problème avec le compte que vous utilisez dans votre connexion. Vérifiez qu’aucune invite de contrôle d’utilisateur ne bloque l’automatisation de l’interface utilisateur.

Si rien ne bloque l’automatisation de l’interface utilisateur, prendre une capture d’écran avant et après une étape défaillante en mode sans assistance peut vous aider à obtenir des commentaires visuels.

L’étape d’échec doit se poursuivre en cas d’échec afin qu’une capture d’écran puisse être effectuée après l’échec.

1- Recherchez l’action « Effectuer une capture d’écran »

Effectuer une action de capture d’écran

 2- Glisser-déplacer l’action « Prendre une capture d’écran » côté script

Glisser-déplacer l’action de capture d’écran

3- Modifiez l’action, utilisez « Fichier » au lieu du Presse-papiers et « avant » dans l’emplacement du nom de fichier Remplir les propriétés prendre une action de capture d’écran

4- Ensuite, copiez/collez et modifiez le nom du fichier de capture d’écran avec après dans celui-ci Dupliquer et remplir les propriétés de l’action de capture d’écran

5- Entourer l’étape défaillante des captures d’écran

Entourez les étapes d’échec avec des captures d’écran

6- Modifier le comportement onError de l’étape d’échec

6a - Modifiez l’étape et cliquez sur « onError » en bas

Modifier le comportement en cas d’erreur

6b - Définissez l’exécution du flux sur « Continuer l’exécution du flux » et « Passer à l’action suivante »

Continuer l’exécution du flux et passer à l’action suivante

7 - Enregistrez, exécutez localement pour tester que des captures d’écran sont produites et relancez une exécution sans assistance.

8- Vérifiez les fichiers de capture d’écran sans assistance

Vérifier la résolution de l’écran et les différences de mise à l’échelle

Pour comparer les paramètres de résolution entre les exécutions suivies et les exécutions sans assistance, ajoutez les actions ci-dessous dans votre script avant d’exécuter dans les deux modes :

  • Copiez/collez l’extrait de code ci-dessous dans un concepteur PAD : cela crée les étapes nécessaires pour capturer les paramètres de résolution et les générer dans un fichier horodaté.

DateTime.GetCurrentDateTime.Local DateTimeFormat: DateTime.DateTimeFormat.DateAndTime CurrentDateTime=> CurrentDateTime
Text.ConvertDateTimeToText.FromCustomDateTime DateTime: CurrentDateTime CustomFormat: $'''yyyy_MM_dd_hh_mm_ss''' Result=> FormattedDateTime
Workstation.GetScreenResolution MonitorNumber: 1 MonitorWidth=> MonitorWidth MonitorHeight=> MonitorHeight MonitorBitCount=> MonitorBitCount MonitorFrequency=> MonitorFrequency
@@copilotGeneratedAction: 'False'
Scripting.RunPowershellScript.RunPowershellScript Script: $'''Add-Type @\'
using System; 
using System.Runtime.InteropServices;
using System.Drawing;
public class DPI {  
  [DllImport(\"gdi32.dll\")]
  static extern int GetDeviceCaps(IntPtr hdc, int nIndex);
  public enum DeviceCap {
  VERTRES = 10,
  DESKTOPVERTRES = 117
  }
  public static float scaling() {
  Graphics g = Graphics.FromHwnd(IntPtr.Zero);
  IntPtr desktop = g.GetHdc();
  int LogicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.VERTRES);
  int PhysicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.DESKTOPVERTRES);
  return (float)PhysicalScreenHeight / (float)LogicalScreenHeight;
  }
}
\'@ -ReferencedAssemblies \'System.Drawing.dll\' -ErrorAction Stop
Return [DPI]::scaling() * 100''' ScriptOutput=> MonitorScaleOutput
File.WriteText File: $'''c:\\test\\resolution_%FormattedDateTime%.txt''' TextToWrite: $'''height: %MonitorHeight% width: %MonitorWidth% frequency: %MonitorFrequency% bitCount: %MonitorBitCount% scale: %MonitorScaleOutput%''' AppendNewLine: True IfFileExists: File.IfFileExists.Overwrite Encoding: File.FileEncoding.Unicode
  • Passez en revue le chemin du fichier de sortie de la dernière action, case activée que l’exécution locale est réussie et enregistrez.

  • Exécutez le script en mode assisté et sans assistance, puis case activée si la sortie de résolution et de mise à l’échelle ont les mêmes valeurs dans les deux modes.

Remarque

Comme mentionné ci-dessus, si l’action des captures d’écran elle-même échoue, une boîte de dialogue contrôle de compte d’utilisateur (UAC) peut bloquer l’exécution de votre flux. Connectez-vous à la machine qui reproduit le problème avec le compte que vous utilisez pour exécuter le flux et vérifiez si vous disposez d’une boîte de dialogue bloquante. Si vous le faites, modifiez votre routine de démarrage pour éviter que cela ne se produise.

Si le script comporte d’autres étapes, il peut échouer après, car le comportement a été modifié pour ne pas générer d’erreurs afin que nous puissions prendre une capture d’écran. Par conséquent, les échecs après la deuxième capture d’écran doivent être ignorés. 

Une fois le problème compris et résolu, restaurez le comportement d’origine de votre flux pour générer des erreurs.

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la langue ?
Qu’est-ce qui a affecté votre expérience ?
En cliquant sur Envoyer, vos commentaires seront utilisés pour améliorer les produits et services de Microsoft. Votre administrateur informatique sera en mesure de collecter ces données. Déclaration de confidentialité.

Nous vous remercions de vos commentaires.

×