2009-09-07 11 views
2

Je cours Selenium avec TestNG en utilisant Eclipse et Selenium RC. J'ai utilisé la commande:selenium.captureEntirePageScreenshot ne fonctionne pas mais selenium.captureScreenshot fonctionne

selenium.captureEntirePageScreenshot("\\test.png",""); 

mais obtenu l'erreur suivante:

com.thoughtworks.selenium.SeleniumException: ERROR: Command execution failure. Please search the forum at http://clearspace.openqa.org for error details from the log window. The error message is: Component returned failure code: 0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH) [nsILocalFile.initWithPath] 



Quelqu'un peut-il s'il vous plaît expliquer pourquoi cette erreur phénomène se produit? Je l'ai déjà essayé ce qui suit:

1) Remplacée "" (String kwargs paramètre) avec "background = # CCFFDD"

2) Exécution dans Firefox en mode chrome

3) Changé le chemin de les valeurs suivantes et j'obtiens toujours l'erreur: "\ test.jpg", "c: \ test.jpg", "c: \ test.png", "c: \ folder1 \ test.png ", (folder1 existe) " c: \ folder1 \ test.jpg ",

4) Essayé avec - selenium.captureS creenshot ("\ test.png"); et ça marche bien mais ça ne résout pas mon but et je ne veux pas utiliser awt.

Quelqu'un peut-il suggérer ce qui pourrait être faux?

Merci,
Mugen

Répondre

0

Pour toute autre personne concernée ,. le problème a été résolu après que j'ai continué à jouer avec le code pendant un moment et ai redémarré mon système. Je suis venu à savoir que captureEntirePageScreenshot fonctionne uniquement sur les chemins absolus, donc je me suis assuré que je continuais à essayer avec juste cela.

1

Essayez ceci:

String path = System.getProperty("user.dir"); 
selenium.captureEntirePageScreenshot(path + "\\test.png", ""); 
1

Mieux encore ...

Je suis tombé sur un problème similaire, où je ne ai eu accès à un chemin relatif au lieu d'un absolu. Voici la solution que je suis venu avec:

public void saveScreenshot(String methodName) { 
    if (methodName == null) { 
     methodName = String.valueOf(System.currentTimeMillis()); 
    } 
    File f = new File("reports" + File.separator + methodName + ".jpg"); 
    selenium.captureEntirePageScreenshot(f.getAbsolutePath(), ""); 
} 

qui mettra une capture d'écran de la page entière dans le répertoire reports qui est par rapport au projet. J'utilise le nom de la méthode comme nom de fichier, ou l'heure actuelle si null est envoyé à la méthode.