2010-06-02 5 views
1

J'utilise le sélénium rc pour faire des tests de site Web fonctionnel et je l'ai connu récemment une question mystérieuse avec safari et opéra. Lorsqu'un test échoue, je fais une capture d'écran en utilisant la commande captureEntirePageScreenshotToString ainsi que la récupération de la source HTML. Parfois, cependant, cela ne fonctionne pas avec un FileNotFoundException: java.io.FileNotFoundException: C: \ DOKUME ~ 1 \ sélénium \ LOKALE ~ 1 \ Temp \ customProfileDir8aa20800ab1a46dbb3ef71d4d2d31b77 \ screenshots \ Page-screenshot-8aa20800ab1a46dbb3ef71d4d2d31b77.pngsélénium rc captureEntirePageScreenshotToString déclenche FileNotFoundException

Est-ce un sélénium punaise? Comment puis-je contourner ce problème?

J'utilise le sélénium rc 2.0a4 autonome.

grâce,

hans

+0

Où avez-vous pu trouver une solution à ce problème, puisque je suis confronté à la même question. – Pran

Répondre

-1

Je vous suggère d'utiliser Apache Commons FileUtils fonctionnent makedirs() pour créer tous les répertoires parents du répertoire où l'image .png sera situé.

+0

@Pierra: Je sais que cette erreur et j'ai les mêmes problèmes.Je cours sekenium-rc sur Windows et simple test de selenese d'alimentation; pas de code Java impliqué. – mark

0

Je l'ai utilisé la méthode « captureScreenshotToString » qui est un peu différent, mais fournit encore les moyens d'obtenir une capture d'écran d'une instance de sélénium à distance.

Le grand différent/problème avec cette approche est qu'il nécessite le serveur de sélénium pour une séance de fenêtres déverrouillées afin qu'il puisse accéder à la mémoire tampon d'affichage pour obtenir à l'écran physique. Cela a créé des problèmes avec mes machines à grille de sélénium sans écran, que j'utilise à distance pour administrer/dépanner.

Afin de contourner ce problème, j'ai utilisé un script autologon pour ce msdn article, et configurer une tâche pour redémarrer l'ordinateur après la fin d'une session de bureau à distance.

Pour configurer redémarrage automatique après déconnexion de bureau à distance:

  1. Ouvrez le planificateur de tâches
  2. Créer une nouvelle tâche (tâche Créer ...)
  3. Définissez le nom de la tâche à « redémarrage automatique après déconnexion de bureau à distance »
  4. Dans l'onglet général, modifiez l'utilisateur NT AUTHORITY \ SYSTEM
  5. Modification de l'onglet déclencheurs, cliquez sur nouveau ... pour créer un nouveau déclencheur
  6. Définissez la Commencer la tâche sur 'Déconnexion de la session utilisateur'
  7. Par défaut, ce sera pour tout utilisateur, et à partir d'ordinateurs distants, exactement ce que nous recherchons.
  8. Passez à l'onglet Actions, cliquez sur Nouveau ... pour créer une nouvelle action.
  9. Sélectionnez l'action à démarrer un programme. Définissez le programme à 'C: \ Windows \ System32 \ shutdown.exe', puis ajoutez '/ r/f/t 5' (Redémarrer, Forcer la fermeture des applications, attendez 5 secondes pour redémarrer).

Un avertissement, ce n'est pas le moyen le plus sûr d'avoir un ordinateur assis autour

Questions connexes